UI自动化测试设计思想和实践

UI自动化测试

自动化测试的目的是提高效率,所以在开始自动化测试之前一定要问自己以下三个问题,尤其第一个是很容易忽视的。

1.是否需要自动化测试
2.需要采用什么自动化测试方法
3.如何开展自动化测试

1.对于是否需要的问题,时候什么需要,当项目属于一直做的项目,一直迭代的项目,不是一锤子买卖,并且对质量要求较高的,还有就是项目周期较长,有时间让你去搞自动化的时候,就是有必要做自动化。
2.采用什么自动化测试方法主要分为两个方向:一是UI自动化,而是API自动化;那么该怎么应用呢?当改变主要发生在逻辑层,UI变化较少时,UI自动化维护成本较低,这时候就选择UI自动化;当UI变动较大,这时候UI脚本维护成本较大,就不能采用UI自动化测试了,采用API自动化较为划算。
api自动化也有局限性,它对研发代码的依赖很强,通常是研发代码提交后相应的测试代码没写完,等下一次编译时又不通过。
3,如何开展自动化测试,选择什么工具进行自动化测试,用appium,robotium,UIAutomator等方法。

appium有如下优点:
1.支持跨平台,同时支持android,ios,hybrid。
2.语法简单,学习成本低,大部分测试人员经过短时间学习就可以掌握和使用。

缺点如下:
1.需要查桩,必须连接电脑才能使用,如果被测试项目需要脱机测试就不能用appium了,比如测试手机耗电量性能测试,如果插着数据线连接电脑,会一直充电,就不能用appium,这时候可以选择UIAutomator。
2.appium脚本运行时间较长,如果需要快速测试,还不如让外包人员手工测试效率高,因为appium脚本执行操作时比人工操作还慢。

在地图项目中,我们最终采用的是appium来做UI自动化测试,决定选择appium后,还要决定用什么语言编写脚本,这里我们测试组选择了python,一方面测试组同事都会python,没有语言学习成本,另一方面python不需要编译,效率较高。

在做UI自动化测试时,我们需要关注三个方面
1.可重用性
脚本的维护都需要时间成本,所以在做UI自动化的时候可维护性就尤为重要了,为了提高脚本的可维护性,这里主要采用两种方式,一是抽取公共方法;二是抽取公共模板。
公关方法是指所有用例脚本都会执行和用到的方法,比如初始化webdriver和找到目录的方法;

抽取公共模板是指各用例脚本的方法的写法可以统一成一个格式,比如可以这样写:
try:
setclassname();
setname(filename,目录名,控件名)
export:
捕获异常;
打印日志;

2.稳定性
测试脚本的稳定性直接关系到脚本的效率和质量,在地图项目的脚本中,我们主要发现了以下几个稳定性问题:
1)一个脚本中包含多个用例,如果一个用例没有编写异常捕获的代码,当一个异常发生时,整个脚本就停止运行,其他的用例就无法继续执行。解决方法是所有的用例都独立运行,都编写异常捕获,互不影响。
2)个别控件id或名字变化了导致控件获取不到,脚本停止运行,解决方案是把通用的控件放到一个文件中单独保存,当控件id发生变化时,不用每个脚本都改,只需要改控件文件即可。
3)指定脚本执行,为了贯彻精准测试思想,指哪测哪,毫不犹豫,像爱国者导弹一样,我们用了八爪鱼用例管理平台,可以指定执行哪些用例的脚本,这里的指定包含以下四个方面
31-指定哪些文件执行
32-指定哪些类执行
33-指定哪些方法执行
八爪鱼主要提供两方面的服务,一是指定哪些脚本执行;而是收集脚本执行日志。

3.通用性
appium可以测试android,ios和hybrid应用,原生应用默认的方法是native method;而hybrid是通过调用webview的方法来访问页面,当原生app中包含webview时,我们需要手动将方法替换成webview method。
在地图项目中,我们的测试架构是这样设计的,

测试基类testcase继承自python的unittest.testcase,testcase包含两个方法,一个UIHelper,负责所有跟appium服务端的通信;另一个是日志方法Logger,负责所有跟日志有关的。

hybrid应用程序的UI自动化应怎么做呢?

appium在项目中遇到的一些问题及解决方案如下:
1.经常遇到‘could not creat session’错误,这种错误出现的原因一般是脚本没有正常退出导致下一个脚本执行时不能正确获取session导致
解决方案有如下几种:
1)在每一个脚本的setup方法中加入session override 方法,也就是说在每一个脚本执行时都会重写覆盖掉前一个脚本的session文件,保证脚本正确的初始化
2)在每一个teardown方法中加入手工关闭session方法,保证下一个脚本初始化之前的session环境是清洁的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值