ui自动化框架

62 阅读2分钟

背景 我们app发版前都要手动测试一些必过项,由于必过项较多,测试人手不足,然后就将这些必过项,让我们开发测试,这样每次发版前需要占用每个开发大概半天的时间。

为了节省人力,我们尝试使用自动化的方式去解决这个问题。 1,我们写了一个简单的h5网页,去录入所有的必过项,包括必过项id,描述,状态(通过,未通过,未测试),然后将数据保存在redash的一张数据表中。

2,使用epresso 和uianimator 自动化测试框架,将自己负责的必过项,写成ui自动化测试用例,用例方法名带上必过项id

3,使用jenkins定时任务执行所有的自动化测试用例,执行之前将必过项表格中所有必过项状态重置为未测试,自动化测试用例是运行在我们的云真机平台的特定手机执执行,执行完之后会生成报告,解析这个报告,根据解析结果,去更新数据表中的必过项的状态

4,用另外一个h5页面去展示redash中必过项表格数据,可以按必过项状态筛选,jenkins任务将所有必过项执行完成后,通过金山协作群机器人将这个h5链接发送到群里,默认选中未通过筛选项,并@测试人员,测试人员就可打开这个h5页面,看哪些没通过,复现之后找对应开发沟通。

#!/bin/bash -il export ANDROID_SERIAL=${deviceId} ./gradlew :app:connectedWoaInnerDebugAndroidTest

Document doc = Jsoup.parse(html);

首先我们平台上的必过项case都有一个标号,我们编写UI自动化测试用例的时候,方法名带上这个编号, 自动化测试的用例编写好之后,可以运行自动化测试对应的task,执行所有的自动化测试case,然后我们使用了gitlab ci的定时任务去执行这个task,自动化测试是运行在我们的云真机平台的特定手机执执行,执行完之后会生成报告,就是哪些用例运行成功,哪些case运行失败了,然后我们对这个报告进行解析,根据方法名带的编号,然后通过平台api,去修改平台必过项的状态,成功了就修改为成功状态,失败了就修改为失败状态,修改完成之后通过金山协作群机器人@测试,然后测试就可以筛选出失败的cese,通知对应的开发进行处理,这样,我们就完全不用去管测试必过项这个事情了。