基于Appium的APP自动化测试基础--美团APP的实例
前段时间用一种流行语言,一个主流工具,一个实用框架,写了一个美团app自动化测试的Demo,利用appium+python+unittest+uiautomatorviewer,编写了测试用例,并通过HTMLTestRunner输出测试报告。
Appium环境搭建的过程就不说了(这种内容百度一搜一大把)。
我是利用uiautomatorviewer进行元素定位的,当然如果比较简单也可以用appium-desktop自带功能的进行元素定位。
下面是面向过程对美团APP进行自动化测试的一个Demo:
备注:第一个异常处理,主要是因为输入手机号后,点击获取验证码,可能会让你直接输入短信验证码,也可能需要你输入图片验证码后再次输入短信验证码,所以用了try-except-else来规避这个问题,当try下面语句报错(也就是不用输入图片验证码时),直接执行except中的内容(直接输入短信验证码),当try下面语句未报错时(也就是输入图片验证码后需要再次输入短信验证码时),try下面语句执行完后,继续执行else语句(输入短信验证码的过程)。因为try语句未报错时候,将不会执行except语句,所以需要加else语句。
将面向过程的Demo封装成类与函数,如下所示:
接下来就是把编写好的测试用例执行,利用HTMLTestRunner生成测试报告:
import unittest,time from HTMLTestRunner import HTMLTestRunner if __name__ == "__main__": test_dir = (rF:appiumtest) discover = unittest.defaultTestLoader.discover(test_dir,*case.py) testReportDir = (rF: eport) nowTime = time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime()) fileName = nowTime+".html" report_Name = testReportDir+fileName fp = open(report_Name,"wb") runner = HTMLTestRunner(stream=fp,title="美团自动化测试报告",description="测试结果") runner.run(discover) fp.close()备注:discover=...是匹配以case结尾的文件(也就是编写测试用例的文件)