APP-UI自动化

工具: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")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值