砸到头上的新活
我们可以看到各种各样的 UI 自动化测试的框架,比较常见的有 appnium,对于开发 APP 的同学这可以提供极大的方便。想起自己的经历,自从工作以来,实际开发 app 的项目并不多,很多都是开发 SDK。那移动端 SDK 有没有什么比较好用的自动化测试框架么,我就翻啊翻,找啊找,好像并没有什么有用的建议。就咨询了一位专门做测试的朋友,给出的答案也是否定的,建议自研一套自动化测试系统。没有办法只能硬着头皮上了。
开始搬砖
一顿操作猛如虎,搞了小半年,自研了一套针对移动端 SDK 功能测试的自动化测试系统。整体设计差不多就是下面这个样子。
测试用例设计如下
{
"caseID": 1,
"caseInfo": [
{
"step": {
"stepDesc": "XXX",
"expectedRes": 0,
"method": "XXX",
"param": {
"paramArgs": "XXX"
}
}
},
{
"step": {
"stepDesc": "XXX",
"expectedRes": 0,
"method": "XXX",
"param": {
}
}
}
]
}
看着好想不知所云,实际上很简单,那就是自己写一个 demo。这个 demo 会封装 SDK 的 API,对外提供测试接口,就是每一个 step,接口内部需要验证 API 调用是否正确,给出一个确定的返回值。测试同学根据自己的想法,随便设计测试用例,测试接口根据读取到的测试用例运行,验证是否是预期的结果。
对自动化测试的思考
其实说白了,还是写一个测试工程 APP,由这个 APP,来覆盖所有的 SDK 的 API 从而实现自动化测试的目的。
这个自动化测试框架还存在一定的弊端,例如新加的测试用例怎么办,重新打包测试工程?那多麻烦,可以接入一个 web 测试服务,后续新增的测试用例,通过测试服务发送到我们的测试工程。