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

相关文章

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是