移动端ui自动化测试和ci集成_iOS UI 自动化测试总结

100a917288842d6cfbd2a75cf80f2504.png

背景介绍:

目前iPad 有三个iOS APP,分别是COOHOM,酷家乐云设计和企业云设计, 每次发版前回归量很大,所以我们需要自动化手段来提高我们的测试效率。目前移动端有多种自动化测试工具和方法,例如Appium,UITesting和KoolTest,Macaca 等。通过调研,发现UITesting非常满足我们的UI自动化测试需求,UITesting 具有以下一些特点:

  • 苹果提出了一个全新的基于Xcode7以上的UI测试工具
  • 支持录制功能
  • 支持Objective-C、Swift编写脚本
  • 基于XCTest框架
  • 引入Accessibility来辅助元素定位,让UI测试更加完善,并且专门提供了Accessibility Inspector;
  • 生成测试报告,支持覆盖率统计

此外,iPad 已经有自动打包流程,使用UITesting 我们可以很快实现持续集成过程。所以最终我们选择UITesting作为我们的UI自动化测试框架。

实现流程:

fbc432da571bd34265002f487a33d65d.png

一、如何在项目中使用UITesting框架和编写测试用例

  1. 首先使用xcode 打开项目
  2. 接入UITesting

进入下面这个界面,点击左下角的加号,选择 New UI Test Target , 添加完成后,会出现一个COOHOMUITests文件夹,这个文件夹下会默认生成一个COOHOMUITests.swift 文件,测试用例就编写在这个*.swift 文件中。

6a72c3de9d4eb865351fade47efea3a5.png

8f9d5e9f8da58dbee8769e68220ca299.png

e80c7849b5a5a40fc0dd980e1fe1fd8b.png

setUp是在所有测试用例运行之前运行的函数,在这个测试用例里进行一些通用的初始化工作

TearDown是在所有的测试用例都执行完毕后执行的

testExample 是测试用例,测试用例的命名都是以test开始

3. 运行测试用例(下面以最简单的测试用例进行示范,重在流程跑通)
可以通过Product →test 运行,也可以直接通过命令行cmd+U

4. 测试成功后,结果会在下面这个界面中展示,绿色打钩表示测试用例成功,红色打叉表示失败

9d0828624e32df8d94e89a2a0d19118b.png

5. 获取代码覆盖率

a. 添加Xcode Coverage 插件
在项目下的Podfile下添加XcodeCoverage ,pod 'XcodeCoverage' , '~> 1.0', 然后pod update 一下,最后,pod install

2402932570501f4c3f8330b1f6903fe6.png

9a488f4e053a50569eb397ce4be3d240.png

b. 项目中配置XcodeCoverage
点击Product->Scheme→Edit Scheme ,出现下面这个界面,选中Test 下的Code Coverage 选项

3684beb6f4da184dade03b8c3229a757.png

c. 再次运行测试用例,查看覆盖率

f6a6281fe321b9f2f97b610e2ed97983.png

6. 试用例demo

30ab3fb291e1f254d5935bf87d0d854b.png

二、如何与GitLab 打通实现持续集成

  1. 在 .gitlab-ci.yml中添加执行测试的命令

8fd7d1615533088a8aa0f71c7ac479f4.png

2. 需要在Fastfile文件添加下面的配置,执行UI测试

59139788430f6238711f72557bc64366.png

3. 需要在Fastfile文件添加下面的配置,获取代码覆盖率

223fa1fdc02212086e81fc24070bb17d.png

4. 将测试结果,测试报告和代码覆盖率通过脚本上传到展示平台

3354d5b9a47e45a66707f8f55016165c.png

三、如何展示最终的测试结果

实现思路:

  1. 对于测试结果数据(代码覆盖率和用例通过率),用例执行结束后,通过调用接口存储到数据库
  2. 对于测试报告和覆盖率报告了,用例执行后,通过脚本将报告从测试机器上拷贝到黄埔测试平台的部署机器上,这样可以通过链接直接查看报告
  3. 在黄埔测试平台上添加前端展示页面,展示测试结果数据和报告链接,便于查看

最终结果:

3e66ad690543884f58e71997c0b68c6d.png

技术文章渠道

微信公众号:gh_76549302cd8f

技术博客:https://tech.kujiale.com/tag/test/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值