Airtest自动化测试篇——python编写和执行用例(下)
目录
导包
连接设备
编写脚本
生成报告
3.2.2 断言
3.2.2.1 断言存在
assert_exists(v, msg="")设备屏幕上存在断言目标
参数:
v – 要检查的目标
msg – 断言的简短描述,它将被记录在报告中
引发:
AssertionError – 如果断言失败
返回:
目标坐标
3.2.2.2 断言不存在
assert_not_exists(v, msg="")设备屏幕上不存在断言目标
参数:
v – 要检查的目标
msg – 断言的简短描述,它将被记录在报告中
引发:
AssertionError – 如果断言失败
返回:
目标坐标
3.2.2.3 断言相等
assert_equal(first, second, msg="")断言两个值相等
参数:
first – 第一个值
second – 第二个值
msg – 断言的简短描述,它将被记录在报告中
引发:
AssertionError – 如果断言失败
返回:
目标坐标
3.2.2.4 断言不相等
assert_not_equal(first, second, msg="")断言两个值不相等
参数:
first – 第一个值
second – 第二个值
msg – 断言的简短描述,它将被记录在报告中
引发:
AssertionError – 如果断言失败
返回:
目标坐标
3.3 其它api
3.3.1 airtest.core.api module
init_device(platform=“Android”, uuid=None, **kwargs)初始化设备,并设置为当前设备
connect_device(uri)用URI字符串来初始化设备,并且设置为当前设备
举例:
android:/// # 当前Android设备,使用默认参数连接
远程Android设备,并且使用了自定义参数
android://adbhost:adbport/1234566?cap_method=javacap&touch_method=adb
windows:/// # 本地Windows桌面
ios:/// # iOS 设备
device()返回当前正在使用中的设备
set_current(idx)设置当前设备
auto_setup(basedir=None, devices=None, logdir=None, project_root=None, compress=None)
自动配置运行环境,如果当前没有连接设备的话,就默认尝试连接Android设备
shell(cmd)在目标设备上运行远程shell指令
start_app(package, activity=None)在设备上启动目标应用
stop_app(package)终止目标应用在设备上的运行
clear_app(package)清楚目标应用的数据
install(filepath, **kwargs)安装应用到设备上
#仅支持android
uninstall(package)卸载设备上的应用
#仅支持android
wake()唤醒并解锁目标设备
#注意:在部分品牌手机上可能无法生效
home()返回HOME界面
click(*args, **kwargs)在当前设备画面上进行一次点击
#和touch作用相同
double_click(v)在当前设备对坐标双击
pinch(in_or_out=‘in’, center=None, percent=0.5)在设备屏幕上执行一个双指pinch捏合操作
in_or_out – 向内捏合或向外扩大,在[“in”, “out”] 中枚举一个值
center – pinch动作的中心位置,默认值为None则为屏幕中心点
percent – pinch动作的屏幕百分比,默认值为0.5
#仅支持Android
sleep(secs=1.0)设置一个等待sleep时间,它将会被显示在报告中
find_all(v)在设备屏幕上查找所有出现的目标并返回其坐标列表
返回坐标列表:[(x, y), (x1, y1), …]
3.3.2 android.core.android
参考文档:
https://airtest.readthedocs.io/zh_CN/latest/all_module/airtest.core.android.html
3.3.3 android.core.ios
参考文档:
https://airtest.readthedocs.io/zh_CN/latest/all_module/airtest.core.ios.html
3.3.4 airtest.core.win
参考文档:
https://airtest.readthedocs.io/zh_CN/latest/all_module/airtest.core.win.html
3.3.5 airtest subpackages
airtest.aircv package
参考文档:
https://airtest.readthedocs.io/zh_CN/latest/all_module/airtest.aircv.html
airtest.cli package
参考文档:
https://airtest.readthedocs.io/zh_CN/latest/all_module/airtest.cli.html
airtest.core package
参考文档:
https://airtest.readthedocs.io/zh_CN/latest/all_module/airtest.core.html
airtest.report package
参考文档:
https://airtest.readthedocs.io/zh_CN/latest/all_module/airtest.report.html
- 生成报告
4.1 生成报告前的设置
- 导包
from airtest.report.report import simple_report
- 在setup语句中设置log路径,或者将logdir=True
if not cli_setup():
auto_setup(file, logdir=True, devices=[
“Android:///”,
], project_root=“D:/pyworkspace/airtest_demo1/test”)
4.2 报告的生成
在代码最后插入一下代码生成报告
simple_report(file)
4.3 报告的样式
和AirtestIDE产生的报告一致
测试报告大致由两部分组成:
上半部分:
报告的名称、作者、报告描述(可自定义,详见下文)以及快览等等。点击任意一张快览,下方会展示相应的测试信息
下半部分:
详细展示了每一个测试动作及其执行情况。单击左侧的测试动作,右侧会显示出相应动作执行结果的详细情况。
并且我们还可以在右侧对不同执行结果进行筛选
4.4 其它
4.4.1 log路径
进行初始化之后执行脚本,会在脚本目录下生成log.html和log文件夹(里面存放着log.txt)。但如果我们手工指定了logdir的目录,log.txt将会在指定的目录下生成
4.4.2 simple_report参数
def simple_report(filepath, logpath=True, logfile=LOGFILE, output=HTML_FILE):
path, name = script_dir_name(filepath)
if logpath is True:
logpath = os.path.join(path, LOGDIR)
rpt = LogToHtml(path, logpath, logfile=logfile, script_name=name)
rpt.report(HTML_TPL, output_file=output)
其中可以传入logpath= 来手工指定脚本的log目录,以此简单地生成 log.html
4.4.3 更加复杂的需求
有更加复杂的需求,例如需要指定导出目录 export_dir ,或是脚本中使用了poco语句,需要用到–pluginpoco.utils.airtest.report
参考文档:
https://airtest.readthedocs.io/zh_CN/latest/all_module/airtest.report.report.html#airtest.report.report.LogToHtml
【完】
Airtest自动化测试篇——python编写和执行用例(下)相关推荐
- Airtest自动化测试篇——python编写和执行用例(上)
目录 导包 连接设备 编写脚本 生成报告 导包 主要需要导入三个包: 从airtest.core.api中import所有API from airtest.core.api import from a ...
- 软件测试学习资料之Airtest自动化测试(4)——AirtestIDE编写和执行用例
目录 连接设备 编写脚本 运行脚本 查看报告 选项配置 查看报告 点击查看报告按键就可以查看报告 也可以右键单击代码区文件标题栏选择查看报告 4.1 报告内容 测试报告大致由两部分组成: 上半部分: ...
- Selenium3自动化测试——2. python编写简单自测代码
开发人员在编写好代码后,测试人员如何在另个测试文件中对开发人员的文件进行测试呢? 例如,开发人员的代码如下,名字为calculator.py. # 创建add函数 def add(a, b):retu ...
- Python编写定时执行脚本
import os import time import subprocess import datetime from apscheduler.schedulers.blocking import ...
- python批量执行多个py文件_Python实现批量执行同目录下的py文件方法
Python版本:3.5 网上找了好多资料都没有直观的写出怎么批量执行,so,整理了一个小程序.最初是为了用Python进行单元测试,同目录下有两个unittest文件, AllTest.py的目的是 ...
- python读文件路径-python获取程序执行文件路径的方法(推荐)
1.获取当前执行主脚本方法:sys.argv[0]和_ file _ (1)sys.argv 一个传给Python脚本的指令参数列表.sys.argv[0]是脚本的名字.一般得到的是相对路径,用os. ...
- Python递归获取指定文件夹下的所有文件夹、文件
原文地址 分类目录--万能的Python系列 因为有了一个想从一个大文件夹下find出所有的.doc文件的需求,这个需求的关键活动就是递归获得文件夹下的所有文件.通过一番找资料,整理出两种递归获取指定 ...
- pytest-xdist:并发执行用例设计(脱坑)
本文主要是讲下up通过并发执行用例时候遇到的坑吧 一.pytest在并发执行用例下,用例的作用域会失效,因为xdist采用的是进程级处理用例,每条用例都是完全隔离的,所以在设计并行用例的时候,必须要保 ...
- python自动化测试篇一 简单介绍
一.什么是 Python Python 是一门编程语言,关于编程语言我们后面再详细讲.首先我们思考,为什么我们要学习 Python 1.为什么要学习 Python 1. 自动化 很多时候,虽然可以通过 ...
最新文章
- Paper5:Curved-Voxel Clustering for Accurate Segmentation of 3D LiDAR Point Clouds with Real-Time Per
- 谢文睿:西瓜书 + 南瓜书 吃瓜系列 11. 贝叶斯分类器
- qq音乐 android pad版,QQ音乐HD(com.tencent.qqmusicpad) - 4.12.1.4 - 应用 - 酷安
- Python Qt GUI快速编程第六章代码分析
- 服务器环境~某个页面无法访问的处理
- String/Stringbuilder/StringBuffer
- JS中用encodeURIComponent编码,后台JAVA怎么解码
- tf.gradients ---错误FetchargumentNonehasinvalidtype
- UHDTV(超高清电视) 的帧率规格:120fps
- Centos挂载iscsi存储
- Oracle与SQL Server的语法区别——Oracle数据库学习
- python 将txt文件转换为excel_Python实现读取txt文件并转换为excel的方法示例
- 全国行政区划json数据包
- C#实现计算机远程操作
- Lua的安装配置出现的问题以及解决方案(Win10环境下)
- Jetson Nano 关闭开启图形界面减少内存占用
- 一文看懂互联网支付系统架构
- 1分钟查找是退回件的快递单号
- Linux网络新技术基石:eBPF and XDP
- python 画不同形状的曲线