基于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结尾的文件(也就是编写测试用例的文件)



经验分享 程序员 微信小程序 职场和发展