美文网首页iOS自动化测试iOS学习测试开发
选择UITesting自动化的几个理由

选择UITesting自动化的几个理由

作者: 沈宥 | 来源:发表于2017-05-19 15:56 被阅读86次

    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成功,并且在工程中配置工程,结果报错信息如下:

    屏幕快照 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是不是一个,如果不是,重新选择。
    工程设置:

    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
    

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

    屏幕快照 2017-05-19 15.55.35.png

    相关文章

      网友评论

        本文标题:选择UITesting自动化的几个理由

        本文链接:https://www.haomeiwen.com/subject/lnsyxxtx.html