Airtest实战(六):结合unittest测试框架

2024-05-29 17:38

本文主要是介绍Airtest实战(六):结合unittest测试框架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

传送门

本系列原创博客的传送门:

Airtest实战(一):部署iOS-Tagent和设置代理

Airtest实战(二):Mac安装Airtest

Airtest实战(三):编写第一个iOS设备脚本

Airtest实战(四):Windows搭建开发环境

Airtest实战(五):安卓测试脚本示例

Airtest实战(六):结合unittest测试框架

 

前言和思路

Airtest提供了好几个assert断言方法,但是断言方法必然会带来程序中断。有人可能会觉得中断了问题不大,少量的测试代码问题确实不大,及时中断,及时发现问题。但若是很多的测试用例,那中断反而会导致测试时间大大延长。这样就必须选用一个测试框架来组织执行测试用例。

在有些资料里,建议我们捕捉异常,就是try--catch的方式,但这个未免有些麻烦。

原本考虑了pytest+allure,发现allure在airtest里是没有必要的,因为airtest运行后会自动产生一份格式优美的测试报告。

而pytest,需要在自己的python环境里安装,当前尚未准备好pytest环境,就不方便。

查找了相关资料,发现Airtest通过继承unittest实现了AirtestCase,这个给与了我们启示,可以使用unittest来结合Airtest来进行测试工作。

简单的往往是最好的。

那为何不用AirtestCase呢,因为查看资料,理解发现需要使用命令行运行,不是使用命令行使Airtest运行,而是通过自身python环境来运行,那就和pytest情况一样了。

所以结论是使用unittest。

 

具体示例

首先引入依赖:

import unittest

然后创建一个类,继承unittest.TestCase,实现它的启动函数和结束函数。

class TestGjj(unittest.TestCase):def setUp(self):print("start cases")super(TestGjj, self).setUp()def tearDown(self):print("finish cases")super(TestGjj, self).tearDown()

将配置相关的代码,放到这个类之前。

新建一个测试函数,比如命名为 test001,将之前的测试代码剪切复制,归属于这个函数。

最后,在代码的最后一行添加下面四行代码:

suite = unittest.TestSuite()
suite.addTest(TestGjj("test001"))runner = unittest.TextTestRunner()
runner.run(suite)

连接手机,先打开,允许本次的调试权限,然后在cmd里输入 adb devices ,发现成功连接。

点击运行按钮,发现测试用例顺利运行。

 

查看测试报告

Ctrl+l

就打开了测试报告,是一个布局设计挺好的测试报告。

 

 

 

 

这篇关于Airtest实战(六):结合unittest测试框架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1014203

相关文章

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

Python结合requests和Cheerio处理网页内容的操作步骤

《Python结合requests和Cheerio处理网页内容的操作步骤》Python因其简洁明了的语法和强大的库支持,成为了编写爬虫程序的首选语言之一,requests库是Python中用于发送HT... 目录一、前言二、环境搭建三、requests库的基本使用四、Cheerio库的基本使用五、结合req

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题