选择UITesting自动化的几个理由

1、关于选用UITesting 作为自动化测试框架,考虑过一下几方面:
(1)测试代码编写的成本
(2)是否可调式
(3)框架的稳定性
(4)测试报告(截图,代码覆盖率,…)
(5)WebView的支持(很多App都用到了H5)
(6)自定义控件的测试
(7)是否需要源代码
(8)能否需要连着电脑
(9)是否支持CI(持续集成)
....

2、从以上各方面对比UITesting Bundle功能后的结果:
(1)代码编写成本略高,但对比正经的测试开发来说,很低了。
不需要关系具体的功能逻辑实现,只要有自己的UI自动化case,需要熟练掌握OC,需要了解xctest就可以了;
(2)完全支持调试
(3)框架稳定,不需要再另外集成第三方库,不需要再担心更新Xcode以后不能使用第三方库;
(4)有框架自己的截图,但是不能自己指定截图,需要通过其他途径获取代码覆盖率....
关于自动化过程中的截图无法实现问题:
模拟器截图很方便,是因为模拟器没有真机的那种沙盒权限机制,可以随便写文件。但是我们实际在测试过程中,很少是用模拟器进行测试的
(5)支持WebView自动化测试
(6)支持自定义控件的测试,只有打开Accessibility属性
(7)必须需要源代码,并且另建Target
(8)需要连着电脑,并且是Debug模式
(9)不支持CI(持续集成)

3、关于获取代码覆盖率的尝试
(1)XcodeCoverage:https://github.com/jonreid/XcodeCoverage
哼哧哼哧的一番折腾,终于在pod成功,并且在工程中配置工程,结果报错信息如下:

选择UITesting自动化的几个理由_第1张图片
屏幕快照 2017-05-19 14.38.28.png

又是一顿查找:
https://github.com/jonreid/XcodeCoverage/issues/40
发现这个问题至今未解决,果断放弃

(2)llvm-cov:官方文档
llvm是随Xcode一起安装的,不需要另外安装。如果遇到解析文件报错LLVM版本不对的,可以用Xcode-select --print-path看下生成文件时的Xcode路径和跑用例时用的Xcode是不是一个,如果不是,重新选择。
工程设置:

选择UITesting自动化的几个理由_第2张图片
C9EF4C37-F7DC-4D7A-8F54-279016C58A29.png

跑完case后,直接在terminal中执行以下命令(记得修改自己的目录):

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/llvm-cov report -instr-profile /Users/userName/Library/Developer/Xcode/DerivedData/xxx-fazrydnyhteyabchpbqfqcblmmxu/Build/Intermediates/CodeCoverage/Coverage.profdata /Users/userName/Library/Developer/Xcode/DerivedData/xxx-fazrydnyhteyabchpbqfqcblmmxu/Build/Intermediates/CodeCoverage/Products/Debug-iphoneos/xxx.app/xxx >/Users/userName/Desktop/llvm-cov.txt

运行后在桌面上找到该结果:

选择UITesting自动化的几个理由_第3张图片
屏幕快照 2017-05-19 15.55.35.png

你可能感兴趣的:(选择UITesting自动化的几个理由)