ios app 的 ui 真机app ui自动化测试框架,一般会选择什么工具

24742人阅读
iOS(401)
研究iOS的自动化测试也有些日子了,刚开始的时候,一直苦于找不到什么好的资料,只能从Apple的官网查阅相关的API文档,只可惜,Apple对开发者来说实在是不怎么友好,文档写得相当的粗略,对于初学者来说有一定的难度。
本来是打算自己动手写一篇关于iOS的UI自动化测试的入门级别的介绍性文档的,但想起来后面在具体解决一些问题的时候,收藏一篇很好的Blog,很全面地介绍了如何使用UIAutomation的做iOS程序的自动化测试。如果作者早点看到这篇文章,应该要少走一些弯路,这里没有创意性的它他翻译成中文,希望对你们有一些帮助。
原文地址:
翻译正文:
自动化测试代码可以“在你的睡着的时候”很好地帮你测试你的应用程序。它可以让你能够快速地跟踪你程序中的回归和性能方面的问题,这样你就不用担心你新增的功能会影响到你之前已经完成开发的程序了。
随着iOS4.0的发布,苹果公司同时发布了一个名为UIAutomation的测试框架,它可以用来在真实设备和iPhone模拟器上执行自动化测试。但官方关于UIAutomation的文档相当的有限,在网络上也没有太多的资源可以查找的。本文将向你展示你如何将UIAutomation整合到你的工作流程当中去。
作为基础知识的准备,你可以先看一下苹果公司,另外还有一篇快速入门的介绍也值得看看,当然,如果你有一个免费的Apple开发者账号的话,你可以看一下的幻灯片或者视频。
除此之外,包括在Xcode中的OCUnit测试框架也可以用来为你的应用程序编写单元测试。
1. 第一个UIAutomation测试脚本
使用iOS 模拟器使用iOS设备
2. 处理UIAElement和元素可访问性(Accessibility)
UIAElement层次结构模拟用户操作
3. 经验分享(让你的生活变得更简单)
类库Tune-up介绍导入外部脚本使用强大的命令行使用录制交互功能当遇到问题时,加上“UIATarget.delay(1);”
4. 高级交互
处理非预期和预期的提示框(alerts)多任务屏幕方向
有用的链接一个视频
1.&你的第一个UIAutomation测试脚本
UIAutomation的功能测试代码是用Javascript编写的。UIAutomation和Accessibility有着直接的关系,你将用到通过标签和值的访问性来获得UI元素,同时完成相应的交互操作。
下面让我们来编写我们的第一段测试代码。
使用iOS模拟器
1. 下载示例应用程序TestAutomation.xcodeproj,并打开它。这个项目是一个很简单的包含2个tab的tabbar应用程序。
2. 确保选中如下图所示的“TestAutomation & iPhone 5.0 Simulator”模式(或许你已经切换成5.1了,因此它可能是iPhone5.1模拟器)。
3. 启动Instruments(Product & Profile),或者通过?I。
4. 选择左边的iOS Simulator,然后再选择Automation模板,然后点击“Profile”。
5. Instruments就已经启动好后,然后直接开始录制了。这里先停止录制,(红包按钮或者?R)。
6. 在左边的Scripts窗口,点击“Add & Create”创建新的脚本。
7. 在脚本编辑器里,输入下面的代码
var target = UIATarget.localTarget();
var app = target.frontMostApp();
var window = app.mainWindow();
target.logElementTree();
8. 重新运行这段脚本?R(不需要保存)。脚本跑起来后,你可以在日志打完后停止它。
赞一个!我们就这样完成了我们的第一个UIAutomation测试用例。
使用iOS设备
你除了将你的测试用例运行模拟器上,也可以将它运行在一个真实的设备上。不过,自动化测试用例只能运行在支持多任务的:iPhone 3GS,iPad,iOS & 4.0等设备上。遗憾的是不管iPhone 3G的系统版本是什么,都不支持。
下面是如何操作:
1. 通过USB接口连接上你的iPhone。
2. 选择 “TestAutomation & iOS Device”模式。
3. 确保Developper profile设置成Release模式(而不是Ad-Hoc Distribution profile)。默认情况下,profiling是设置成Release模式的(因为没有必要将profile设置成Debug模式)。
5. 后面的步骤请参考前面模拟器部分。
2.&处理UIAElement和元素可访问性(Accessibility)
UIAElement层次结构
Accessibility和UIAutomation有密切的联系:如果一个控件的Accessibility是可以被访问的,你就可以设置和读取它的值,作相关的操作,而当一个控件的Accessibility不可见时,你就没有办法通过automation访问它。
你可以通过Interface Builder,或者通过在程序里设置isAccessibilityElement属性的方式来设置一个控件的Accessibility或者可被自动化。当你设置container view(即:一个视图包含其它的UIKit元素)的accessibility时,你必须注意。你设置了整个View的accessibility将会“隐藏”它的子视图的accessibility,例如:在示例项目中,你不能将outlet视图设置成可访问的,否则它所有的子控件将都不可以访问了。在任何时候,logElementTree都是你忠实的朋友:它将当前界面的所有可被访问的元素都打印在日志里。
每一个可以被访问的UIKit控件都可以用一个Javascript对象来描述,它就是一个UIAElement。UIAElement有几个属性:name, value, elements, parent。你的主窗口包含很多的控件,它们是以UIKit层次的方式定义的,这些UIKit层次结构对应的是UIAElement的层次树。例如:前面的测试代码中,通过调用logElementTree,我们可以得到如下面所示的树结构:
+- UIATarget: name:iPhone Simulator rect:{{0,0},{320,480}}
| +- UIAApplication: name:TestAutomation rect:{{0,20},{320,460}}
| | +- UIAWindow: rect:{{0,0},{320,480}}
| | | +- UIAStaticText: name:First View value:First View rect:{{54,52},{212,43}}
| | | +- UIATextField: name:User Text value:Tap Some Text Here ! rect:{{20,179},{280,31}}
| | | +- UIAStaticText: name:The text is: value:The text is: rect:{{20,231},{112,21}}
| | | +- UIAStaticText: value: rect:{{145,231},{155,21}}
| | | +- UIATabBar: rect:{{0,431},{320,49}}
| | | | +- UIAImage: rect:{{0,431},{320,49}}
| | | | +- UIAButton: name:First value:1 rect:{{2,432},{156,48}}
| | | | +- UIAButton: name:Second rect:{{162,432},{156,48}}
你可以通过下面的代码来访问文本框:
var textField =
UIATarget.localTarget().frontMostApp().mainWindow().textFields()[0];
你可以选择通过从0开始的索引或者这个元素的名称来访问这个元素,例如:你也可以通过下面的代码来访问文本控件。
var textField =
UIATarget.localTarget().frontMostApp().mainWindow().textFields()[&User Text&];
后一种方式更加清晰明了,应该多使用。你可以通过Interface Builder设置UIAElement的name属性,
或者通过编写代码的方式:
myTextField.accessibilityEnabled = YES;
myTextField.accessibilityLabel = @&User Text&;
你现在可以看到,通过accessibility属性可以被UIAutomation用来找到不同的控件。这非常的清晰,因为,第一,你只要学习一个测试框架;第二,通过编写自动化测试代码,你同时还可以保证你的程序是可以被访问的。因此,每一个UIAElement对象的子控件可以通过下面的方法进行访问:
buttons(), images(), scrollViews(),textFields(), webViews(), segmentedControls(), sliders(), staticTexts(), switches(), tabBar(),tableViews(), textViews(), toolbar(), toolbars() 等等……
你可以通过如下代码在tabbar上访问第一个tab:
var tabBar = UIATarget.localTarget().frontMostApp().tabBar();
var tabButton = tabBar.buttons()[&First&];
UIAElement结构层次非常的重要,你以后会常常用到它。而且你还要记住,你可以在随时通过调用UIAAplication的logElementTree来获得它的结构。
UIATarget.localTarget().frontMostApp().logElementTree();
在模拟器上,你还可以激活Accessibility 的检测器。启动模拟器,找到“Settings & General & Accessibility & Accessibility Inspector”,然后将它设为“打开”状态。
这个彩色的小框框就是Accessibility 检测器了。当它收起来的时候,Accessibility就被关闭了,当它展开的时候,Accessibility就是打开的。你只要点击上面的箭头按钮就可以激活或者屏蔽Accessibility。现在,打开我们的示例程序,激活检测器。
然后,点击文本框,检查UIAElement的name和value属性(其实就是accessibilityLabel和accessibilityValue对应的NSObject类型的值)。这个检测器可以帮助你调试和编写你的测试代码。
模拟用户操作
让我们更进一步,模拟一些用户的交互操作。你可以简单地调用按钮的tap()来作一个点击操作:
var tabBar = UIATarget.localTarget().frontMostApp().tabBar();
var tabButton = tabBar.buttons()[&First&];
// Tap the tab bar !
tabButton.tap();
你还可以调用UIAButtons的doubleTap(), twoFingerTap()。如果你不想操作具体的某个元素,你也可以直接根据屏幕上指定的坐标点进行操作,你可以这么用:
UIATarget.localTarget().tap({x:100, y:200});
UIATarget.localTarget().doubleTap({x:100, y:200});
UIATarget.localTarget().twoFingerTap({x:100, y:200});
UIATarget.localTarget().pinchOpenFromToForDuration({x:20, y:200},{x:300, y:200},2);
UIATarget.localTarget().pinchCloseFromToForDuration({x:20, y:200}, {x:300, y:200},2);
拖拽与划动:
UIATarget.localTarget().dragFromToForDuration({x:160, y:200},{x:160,y:400},1);
UIATarget.localTarget().flickFromTo({x:160, y:200},{x:160, y:400});
注意,当你指定操作的时间间隔的时候,它是有特定的范围的,即:拖拽操作的时间间隔必须大于或者等于0.5秒,小于60秒。
现在,让我们来练习一下:
停止Instruments (?R)在Scripts窗口里, 移除当前的脚本点击“Add & Import”然后选择TestAutomation/TestUI/Test-1.js(将下面的代码保存到这个路径)点击录制按钮 (?R) 然后看看将会发生什么…
下面是Test-1.js代码:
var testName = &Test 1&;
var target = UIATarget.localTarget();
var app = target.frontMostApp();
var window = app.mainWindow();
UIALogger.logStart( testName );
app.logElementTree();
//-- select the elements
UIALogger.logMessage( &Select the first tab& );
var tabBar = app.tabBar();
var selectedTabName = tabBar.selectedButton().name();
if (selectedTabName != &First&) {
tabBar.buttons()[&First&].tap();
//-- tap on the text fiels
UIALogger.logMessage( &Tap on the text field now& );
var recipeName = &Unusually Long Name for a Recipe&;
window.textFields()[0].setValue(recipeName);
target.delay( 2 );
//-- tap on the text fiels
UIALogger.logMessage( &Dismiss the keyboard& );
app.logElementTree();
app.keyboard().buttons()[&return&].tap();
var textValue = window.staticTexts()[&RecipeName&].value();
if (textValue === recipeName){
UIALogger.logPass( testName );
UIALogger.logFail( testName );
这段脚本先启动待测程序,然后,如果第一个tab没有被选的话就切换到第一个tab,并将上面的文本框的值设成“Unusually Long Name for a Recipe”,接着收起虚拟键盘。这里有一些新的方法值得注意的:UIATarget的delay(Number timeInterval) 方法允许你在两个操作之间做一些等待,UIALogger的logMessage( String message) 方法用来将你想打印的信息输出到日志上去,UIALogger的logPass(String message)方法指明你的测试脚本已经成功的完成测试了。
你还知道了如何访问键盘上的按钮,然后作点击操作:
app.keyboard().buttons()[&return&].tap();
由于时间有限且原文太长,先只能翻译到这里,我会尽快的将剩下的部分翻译补上。另外,时间仓促,如有翻译得不准确的地方,也敬请担待。谢谢。
本文由的Dawson Liu翻译,转载请注明出处。
致力于移动平台自动化测试技术的研究,我们希望通过向社区贡献知识和开源项目,来促进行业和自身的发展。
var isLogined = var cb_blogId = 123488; var cb_entryId = 2631949; var cb_blogApp = currentBlogA var cb_blogUserGuid = &4c20a564-9fd4-e111-aa3f-842b2b196315&; var cb_entryCreatedDate = ' 15:47:00'; var enableGoogleAd = var googletag
= googletag || {}; googletag.cmd = googletag.cmd || [];
原文地址:/vowei/archive//2631949.html
本文地址:蓝色梦想网:/BBS/TechBSS/Article-3509.html
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1974123次
积分:17915
积分:17915
排名:第498名
原创:55篇
转载:883篇
评论:97条
(4)(1)(1)(15)(21)(4)(6)(42)(4)(1)(5)(2)(11)(18)(21)(43)(3)(4)(11)(5)(3)(2)(7)(2)(4)(39)(60)(24)(86)(118)(92)(2)(2)(2)(1)(5)(18)(3)(17)(20)(97)(59)(35)(20)(1)页面已拦截
无锡网警提示您:
该网址被大量用户举报,可能含有恶意信息。ios自动化测试(xcode自带的UI测试) - 简书
ios自动化测试(xcode自带的UI测试)
一.使用前景一般app开发完成后,打出ipa包,供测试mm下载安装测试。测试mm会打开app进行各种按键切换手势动作(其实主要就是UI交互操作),很是繁琐,尤其是回归测试,会做很多重复的工作。为了减轻测试mm的压力,苹果在ios9后,引入和UI测试相关API。开发就可以比把较固定的和通用的测试用例做成UI测试用例,一键运行所有用例,极大的减轻了测试mm的工作压力。运行用例效果图如下(红×就是用例不通过的):
Paste_Image.png
二.给工程添加UI测试模块ios9后,XCTEST框架增加了UI测试相关的API(UI测试)
&语言是oc或swift语言&1.新建的时候选择如下模块
Paste_Image.png
2.如果新建的时候完了,也可以如下方法添加(添加target)
Paste_Image.png
3.创建好后默认代码解释
Paste_Image.png
4.命名规范
ui测试用例要以test开头命名
-(void)testExample1
XCUIApplication *app = [[XCUIApplication alloc] init];
[app.buttons[@"自选"] tap];
XCUIElement *textField = [app.textFields elementBoundByIndex:0];
XCTAssert(textField.exists);
[textField tap];
[textField typeText:@"500"];
[app.buttons[@"计算"] tap];
//添加自己的测试代码(断言)
XCUIElement *lbl = app.staticTexts[@"计算结果=45"];
XCTAssert(lbl.exists);
三.具体编码过程一般先用脚本录制工具(UI Recording)进行简单逻辑的代码生成,之后在对代码进行修改,添加断言或循环操作之类的1.脚本录制工具(UI Recording)
Paste_Image.png
录制脚本源码(默认应该会有错误)
Paste_Image.png
2.修改脚本
Paste_Image.png
四.代码编写和修改
头文件相关类
Paste_Image.png
2.UI测试常用的API(理解子元素和后代元素的层次关系)//所有后代元素
-(XCUIElementQuery*)descendantsMatchingType:(XCUIElementType)
//直接子元素
-(XCUIElementQuery*)childrenMatchingType:(XCUIElementType)
//模拟文本框输入
-(void)typeText:(NSString*)
//模拟单机
3.常用场景3.1判读是否含有指静态文本XCUIApplication* app = [[XCUIApplicationalloc] init];
//获得当前界面中的表视图
XCUIElement* tableView = [app.tableselementBoundByIndex:0];
XCUIElement* cell1 = [tableView.cells elementBoundByIndex:0];
//法1 推荐使用
XCTAssert(cell1.staticTexts[@"Welcome"].exists);
XCTAssert([[cell1 descendantsMatchingType:XCUIElementTypeStaticText] objectForKeyedSubscript:@"Welcome"].exists);
3.2点击导航栏上的回退按钮XCUIApplication* app = [[XCUIApplication alloc] init];
//点击添加“增加”按钮,跳转到增加界面
[app.navigationBars[@"导航栏"].buttons[@"back"] tap];
4.使用的时候注意点4.1.如果是xib可以用苹果的辅助功能
Paste_Image.png
XCUIElement *textField = app.textFields[@"revenueTxt"];
因为我用的是代码生成的,用的是如下方法替代XCUIElement *textField = [app.textFields elementBoundByIndex:0];
五.具体使用例子1.数据库(查增删)UI测试用例源代码下载:2.简单效果图
Paste_Image.png
3.注意UI用例测试如果不是很独立,相互之间有联系,出现红x不一定代表代码逻辑有问题,有时候可能是很多用例有先后顺序,需要具体评估(造点数据,在重新运行下用例就可以)
如果您发现本文对你有所帮助,如果您认为其他人也可能受益,请把它分享出去。
新浪博客地址.cn/u/移动App自动化测试-交流-火龙果讲堂
追随技术信仰
随时听讲座
每天看新闻
移动App自动化测试
移动端因为平台多样性,给自动化测试带来的更多的挑战,而移动端的用户和开发环境的差异性也给自动化测试带来了更多的期望。那么,崭新而快速发展的移动端自动化测试如何进行了,本期讲座将向您打开全景视角,快速定位!
时间:,上午10:00-11:00
地点:在线交流,会议网址报名接收后通知
费用:免费
限制人数:100人
1.移动App自动化测试的现状
2.有哪些移动端App自动化测试工具
3.这些自动化测试工具各自用途和特点
4.如何实现跨平台的自动化测试Android/iOS
目标听众:移动App测试关注者
请加微信&uml_net_cn,获取讲座资料
提示:对于不符合要求的参加者可能因为交流人数限制而不能参加,但是可以订阅讲座实录,在讲座结束后观看讲座实录。
问题收集(以下问题将在讲座中进行讨论或解答)
梅英(南京凹凸软件,测试工程师):适合app测试新手的测试工具ios与安卓的app测试有何不同app与pc端的接口测试傅云晶(深圳,前端):如何进行自动化测试案例讲解必要性王微(赛宝网络科技,测试工程师):领导不重视测试,如何开展自动化测试如何写完美的测试报告现下最流行的自动化框架?刘洪建(fn,研发经理):如何做自动化测试什么样的功能可以做自动化测试自动化测试能覆盖多少业务孙加凯(河北网星软件,软件工程师):都用哪些工具或好的用例张(工商,qa):如何设计very easy的架构,更美好报告到底用哪种方式更好做了框架也做了教学做了bdd的形式,价值小关心的人少怎么办伍晓明(海尔集团,Manager):基于gui的自动化效率比较低,怎么破?陈瑞(华阳海事服务,Linux运维):移动App测试的时候如何测试网络问题,网络运营商有的时候会产生莫名其妙的问题java server还是 安卓更有前途马金博(123,):没做过app测试,如何从零学起做移动化方向应该做哪些工具有没有必要专门去学一门需要乐柳(mfashi,测试工程师):无计算机基础的同学如何入手自动化测试无计算机基础的同学如何着手学习一门语言如何看待各种测试工具张海梅(天地自动化股,测试组长):研发流程不是很规范,需求变动大的情况下,如何开展APP自动化测试。测试人员只有2名的情况下任务紧迫的情况下,两周测试完一个项目,选用哪种APP能在短期内产生高效。关于自动化测试脚本如何管理。刘柯琳(Ofashi,测试主管):如何在业务快速迭代的情况下进行自动化测试?吴永青(网御,QA):开始APP自动化测试需要做哪些准备比较适用和便捷的自动化测试框架如何让自动化快速的见成效刘昕(银河网络,项目秘书):测试中的回归测试该如何做好?系统安全测试现在是否有体系?定制化测试有没有专门的测试软件编辑?马品(江苏瑞银,测试):测试小白如何进阶自动化测试工具测试如果不走技术性道路该怎样进行职业规划万志鹏(纷享逍客,安卓开发):常用的自动化测试框架从开发的角度如何介入测试张霞(深圳市科方大,测试):app自动化测试使用什么工具最好使用uiaotumator时,在不同机型上进行ui测试,有的会出现错误崔永浩(Lanzho,软件测试工程师):自动化测试的工具有什么 自动化测试是否能解决UI测试问题 自动化测试开发流程的优化万熙凤(江苏源梦教育,软件测试工程师):自动化测试用例覆盖率问题移动端app测试工具怎么选取移动端app的兼容性测试怎么自动化楚光绘(河南校信通科,测试工程师):安卓和苹果自动化测试有什么不同?什么样的手机app适用自动化测试自动化app如何系统的学习并深入提高许莲容(麦子金服,测试):业务性很强的移动端如何做?需求变更频繁如何做自动化?迭代迅速如何做自动化?潘伟(南京快悦电子,测试):目前手机自动化测试工具有哪些手机自动化测试适合那些项目陈继(珊瑚灵御,产品负责):测试流程和重点环节是哪些哪些免费测试方法、工具、平台是可以使用的针对应用中的安全性问题如何进行测试丁丁(柯达,qa):如何从桌面测试迅速转入移动测试移动测试发展趋势CI 在移动测试中体现于(安智,QA):自动化测试到底能替代手工测试的多少工作量?自动化测试入门的难点是什么?接口测试指的是什么侯小兰(八月,软件测试):自动化测试效果如何?自动化测试是完全可以做到自动化吗?不需手动测试?自动化测试需要准备什么?_?王平(我买网,架构师):Appium单元测试、白盒测试测试开发张金发(深圳升职岛科,测试组长):什么样的团队适合做自动化测试未来3-5年测试发展方向大话移动app测试2.0什么时候可以买到谭霓(移动物联网,测试工程师):对于更新频率高的移动端APP自动化程度到达百分之多少比较合适刘秋菊(软件,软件):当前流行的测试工具测试的前景就业前景杨明(king,p m):使用啥框架?appnium?王利(一维网络,开发工程师):小企业开发兼测试是否适用自动化测试王宁宁(北京永通卓越,测试经理):常用的测试工具有哪些?王利(一维网络,开发工程师):小企业开发兼测试是否适合采用自动化测试自动化测试适用于哪些场景自动化测试工具有哪些李聪颖(金风科技,软件测试):app功能测试的关注点如何开展app性能测试app流量测试的方法有哪些黄丹(东方口岸科技,产品经理):自动化测试局限如何区分少测试软件问题还是被测试app问题李(兰州大方电子,测试工程师):适合中小企业的移动端App自动化测试工具有哪些?敏捷开发中如何介入测试?测试人员的发展出路?付艳玲(捷丰网络,测试工程师):刚转行做测试,接触的是APP。请问做自动化测试需要具备什么知识?安卓和ios做自动化有不同的地方。戴阳(91powe,QA):移动app自动化测试,在了解appium等工具的前提下,如何深入学习什么样的功能适合自动化测试目前国内外APP自动化的状况williamson(中油瑞飞信息,高级测试):高级测试工程师转做管理岗,需要准备哪些能力?赵红灵(明源云,软件测试):敏捷过程中,自动化何时介入?虚拟机还是真机进行测试?如何做到与jenkins自动构建?古乾燕(明源,城市工程师):APP自动化测试能覆盖哪些APP测试执行自动化耗费人力资源评估郑志国(创业,工程师):自动化测试您遇到过哪些坑,是如何解决的刘剑(深圳市家电网,测试工程师):目前手机自动化测试工具有哪些appium自动化测试工具需要掌握哪些内容手机自动化测试适用于哪些项目孙婷婷(网易,QA):移动app在迭代周期短的情况下,如何计划自动化测试移动app自动化测试,在了解appium等工具的前提下,如何深入学习朱琴(美柚,测试工程师):iOS性能测试有类似安卓monkey一样的工具吗?一般iOS性能测试可以使用哪些工具?赖丽娜(创业公司,测试):app自动化测试如何测试内存溢出?如何编写自动化测试框架,需要考虑哪些方面?如果选择非公司内产品作为自动化框架,那么选择时需要考虑哪些方面?弈成(象翌,测试):app性能测试怎么展开怎么进行app易用性测试王笑(中国科学院大,测试工程师):什么样的功能适合自动化测试如何进行自动化测试宫(百洋智能科技,测试主管):自动化工具,适合变更频繁的APP吗能否做到兼容性测试。脚本的维护成本太高,是否有解决方案韦承云(CMCC,测试设计与分析工程师):比较想知道,工具的使用如何与后续的资源池管理平台进行集成。工具从初步的环境搭建到成熟的使用,都需要怎样的进阶过程杜巍(移动,测试设计):优秀的自动化测试框架自动化测试是否能解决UI测试问题自动化测试开发流程的优化羊羽(thakra,测试工程师):商城类型APP某个分类版块的自动化测试如何展开刘发辉(武汉美瑞科技,测试工程师):Hybrid App自动化测试移动app自动化测试框架集成和应用黄明斌(深圳市艾弗移,测试工程师):主流的自动化框架有哪几种从自动化入门到可以上手做项目,一般人需要多长的学习周期目前国内外APP自动化的状况李黎(高德体育,tester):什么情况下需要做移动app自动化(分项目需求吗),由什么因素决定?在每次版本迭代时如何管理app自动化代码?在项目中如何分配在功能、自动化和性能测试间各占的比例赵莹杰(恒天翼信息科,初级测试工程师):现在比较主流的移动APP自动化测试工具有哪些学习自动化测试需要有什么语言基础自动化测试主要针对什么样问题张向明(盛大,测试工程师):手机自动化什么样的项目适合?appium可以录制ios应用吗?手机测试的前景?默陌(tcl,qa):如何搭建开发公司内部的云测试系统目前自动化测试的应用面从哪些维度来体现自动化测试给公司带来的价值刘凯(360,测试开发):如何进行移动app的自动化测试小白如何学习app的自动化测试闫耀珍(奇虎360,测试开发工程师):移动App自动化的现状以及未来高学文(奇虎360,测试经理):APP测试的趋势老师所在公司的APP上线灰度发布流程黄夏春(dcm,技术经理):APP自动化测试在测试中占的比例,什么情况下使用自动化测试梁力(梁力-个人,自由职业者):跨平台测试工具哪个容易上手?测 iOS 应用时如何启动?TesterHome 跟百度众测和 51testing 比有什么特色?使用跨平台测试工具时,在软硬件接口和错误报告的格式上有些什么要注意的地方?
最新活动计划
希望我们的资料可以帮助你学习,也欢迎投稿&提建议给我
频道编辑:song
邮&&&&&&件:song@
&&京ICP备号&&京公海网安备号

我要回帖

更多关于 ios app自动化测试 的文章

 

随机推荐