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 Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言