工具:pytest+allure2+uiautomator2
pytest:python测试框架,可以用于接口等各种测试;文档:http://www.mamicode.com/info-detail-2823992.html
allure2:可视化报告框架,将测试结果以html的形式展示;
pytest-allure-adaptor:pytest的插件,可以生成Allure需要的用于生成测试报告的数据
pytest+allure2可以
allure:正常下载安装,配置环境变量即可。pycharm中命令行执行有问题,待排查。
pytest:
uiautomator2:UI自动化框架,介绍及使用:https://testerhome.com/topics/11357
执行顺序:pytest执行测试用例生成xml报告(pytest -s -q --alluredir report)→ allure生成html文件[在项目目录下执行](allure generate --clean reports)
1)执行用例:
pytest常用命令行及选项:-v 输出信息详细一些,包括每个用例的执行情况。否则是文件的执行情况
-q 简化控制台输出
-s 输出调试信息,如打印信息print()
-k 可以用表达式指定想要执行的用例,如想要执行test_aaa()和test_bbb(),可以用pytest -k “aaa or bbb”实现,结合-v参数进行验证。pytest -vk “aaa or bbb”
-m 用@pytest.mark.mark_name
给测试用例做标记,执行时可以选择特定标记的用例执行,pytest -vm “aaa or bbb”
-x 遇到失败用例则停止后续用例执行
--maxfail=n n个用例失败后,后续用例才会停止执行
生成测试结果文件:
--alluredir=reports(文件存放目录) 用例执行完毕,即可在指定目录下生成测试结果数据的xml文件 【该参数放最后】
2)生成测试报告(cmd中执行,pycharm中执行失败,没找到原因):
allure generate 测试结果数据所在目录(当前项目目录下可为空) -o 测试报告保存的目录 --clean(清空原目录)
二、allure
@allure.feature("测试首页") 功能模块分级:一级
@allure.story('测试首页搜索') 功能模块分级:二级
一、pytest
1.1
@pytest.fixture()、yield、conftest.py(配置文件,其他文件引用该文件中的方法时不需导入该模块):https://www.cnblogs.com/shenh/p/11572657.html
1.1 手机安装atx-agent:python -m uiautomator2 init
1.2设备连接:(usb连接)import uiautomator2 as u2 d = u2.connect_usb('123456f')
(wifi连接)import uiautomator2 as u2 d = u2.connect('192.168.0.100')
1.3以web页面形式抓取APP应用控件:python -m weditor
1.4定位方式:ResourceId定位: d(resourceId="com.smartisanos.clock:id/text_stopwatch").click()
Text定位 d(text="秒表").click()
Description定位 d(description="..").click()
ClassName定位 d(className="android.widget.TextView").click()
1.5操作控件:(click) d(text="Settings").click()
(long click) d(text="Settings").long_click()
(等待元素的出现) d(text="Settings").wait(timeout=10.0)
1.6字符输入:可以定位到元素:d(text="Settings").set_text("你好")
不能定位到元素:d.set_fastinput_ime(True)
d.send_keys("你好 Hello")
d.set_fastinput_ime(False) # 输入法用完关掉
1.7截图:d.screenshot("home.jpg")
1.8获取图层信息:xml = d.dump_hierarchy()
1.9清除输入框内容:d.clear_text()
模拟输入法搜索:d.send_action("search")