news 2026/4/15 11:00:59

Appium自动化测试最佳实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Appium自动化测试最佳实践

01 背景

在当今快速发展的互联网时代,UI 需求越来越大、越来越高大上、越来越复杂,相对应的 App 作为最重要的大前端的一部分,也不可避免。

App 迭代的不断加速,需求的不断复杂化,给测试人员增加了非常大的工作量,但是没办法,测试是保证产品质量的一道非常重要的关卡,只有通过这道关卡,产品的质量才能得到真正的提高。

02 自动化测试

但是随着 App 的需求复杂化,测试人员似乎已经没有很多精力去应对这一场景,所以 自动化测试就出世了,让机器来帮我们做大量的、复杂的、重复的测试工作,是现在测试的趋势。

选择正确的自动化测试工具,也是一件非常重要的事情。

03 Appium 自动化测试

🎯Appium 是什么

Appium 是一个开源测试自动化框架,可用于本地、混合和移动 web 应用程序。它使用 WebDriver 协议驱动 iOS、Android 和 Windows 应用程序。可以用于做自动化测试。

🎯用例规则

  • 一个脚本对应一个测试的场景

  • 只做功能正向逻辑的验证,尽量不做逆向逻辑的验证

  • 脚本和脚本直接不要互相依赖

🎯Excel 编写 测试用例

id:测试用例的 id

title:测试用例的标题

data:测试用例用到的数据

result:测试用例测试的结果

actual:测试用例运行结果,成功或者失败

🎯OpenPyXI 读取数据

编写完 Excel 表格,我们需要使用 Python 的 OpenPyXI 对 Excel 表格进行读取解析:

def get_cases(self, sheet_name): sheet_name=sheet_name sheet=self.workbook[sheet_name] max_row=sheet.max_row cases=[] for r in range(2, max_row + 1): case=Case() case.id=sheet.cell(row=r,column=1).value case.title=sheet.cell(row=r,column=2).value case.data=sheet.cell(row=r,column=3).value case.expacted=sheet.cell(row=r,column=4).value cases.expacted=sheet.cell(row=r,column=4).value cases.append(case) if type(case.data) == str case.data = json.loads(case.data) return cases

🎯测试结果写入 Excel

当测试完成之后,需要把测试的结果写入到 Excel:

def write_result(self,sheet_name,row,result,actual=None): sheet=self.workbook[sheet_name] sheet.cell(row,5).value=result sheet.cell(row,6).value=actual self.workbook.save(filename=self.file_name)

🎯获取元素定位

测试用例设计完,我们需要执行,我们需要自动化测试操作页面上的元素,所以我们得获取元素。

获取到了元素的位置。

获取元素定位的一些参数,有:

  • ID 定位:find_element_by_id()

  • class 定位:find_element_by_class_name()

  • 文本定位:find_element_by_android_uiautomator()

  • xpath 定位:find_element_by_xpath()

🎯使用 unittest 进行断言

unittest 的主要语法包括:

  • TestCase

  • TestSuite

  • TestRunner

  • TestLoader

  • Fixture

TestCase

TestCase 就是测试用例的意思。

import unittest def add(x, y): return x + y class Test01(unittest.TestCase): def testadd01(self): add(2, 3) def testadd02(self): add(10, 10) # testing..... unittest.main("test01_testcase")

TestSuite & TextTestRunner

TestCase 就是测试用例的意思。

  • TestSuite 是测试套件,可以批量执行测试用例

  • TextTestRunner 是用来执行 测试套件的

import unittest from Unittest import Test01 suite = unittest.TestSuite() suite.addTest(Test01("testadd01")) # testing...... runner = unittest.TextTestRunner() runner.run(suite)

TestLoader

TestLoader 可以执行多个测试文件(查找 test 开头的 .py 测试文件)。

现在有个小案例:

运行 tests 目录下 test1.py~test5.py 文件。

import unittest suite = unittest.defaultTestLoader.discover("../tests") unittest.TextTestRunner().run(suite)

04 使用 Apifox 进行 API 自动化测试

那么测试完 UI 界面之后,我们如何更好地去单独测试 API 层面呢?我们需要借助一些比较出色的 API 工具去进行测试,比如 Apifox。

创建 API 请求

我们需要先创建一个 API 请求,填入路径、名称、请求方法。

编写断言脚本

接着我们到 后置脚本 中,选择自定义脚本。

Apifox 已经为我们提供了现成的脚本语句,我这里想要判断返回的 status code 是否为 200。

然后点击保存按钮,即可成功创建请求。

运行得到响应和断言结果

到运行页,点击发送按钮,则可得到响应,以及断言结果。

最后作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈,这些资料希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 12:53:41

泛型的相关知识

定义类、接口、方法时&#xff0c;同时声明了一个或多个类型变量&#xff08;如&#xff1a;<E>&#xff09;&#xff0c;称为泛型类、泛型接口、泛型方法&#xff0c;他们统称为泛型。public class ArrayList<E> {//... }作用&#xff1a;泛型提供了在编译阶段约束…

作者头像 李华
网站建设 2026/4/13 7:50:39

微信小程序开发实战之 02-微信小程序页面制作

页面制作概述 WXML 概述 在制作微信小程序页面时&#xff0c;页面的结构可以用 WXML 来实现。 WXML 是微信团队为微信小程序开发而设计的一套语言&#xff0c;可以结合微信小程序中的各种组件构建页面结构。 WXML 与 HTML 的区别&#xff1a; HTML 和 WXML 使用的标签不同。HTM…

作者头像 李华
网站建设 2026/4/11 7:42:16

2025年降AI率工具实测!5个降AI工具推荐:免费降AIGC工具指南

在论文、报告、内容创作越来越严格的时代&#xff0c;查AI率、检测AI率、降AI率 已经成为学生、写作者、博主的日常需求。很多同学因为 AI率过高被导师指出“AI痕迹太重”&#xff0c;甚至退回重写。本文今天一次性告诉你&#xff1a; 检测AI率应该注意什么 免费查AI率的网站有…

作者头像 李华
网站建设 2026/4/10 6:08:31

2025.12.13 论文阅读

2025.12.13 论文阅读一、文献阅读题目信息摘要创新点网络框架1. 整体模型流程2. 特征映射 (Feature Map)3. Ansatz (参数化量子电路)实验结果实验一&#xff1a;预测性能与区间估计实验二&#xff1a;训练收敛性与泛化能力实验三&#xff1a;电路深度对性能的影响分析结论不足与…

作者头像 李华
网站建设 2026/4/10 20:14:00

国产操作系统:自主可控的技术突围

一&#xff0c;国产操作系统概述 定义国产操作系统的概念&#xff0c;包括自主研发、开源改造等类型。简述发展背景&#xff0c;如国家安全需求、技术自主可控等驱动因素。 1&#xff0c;主流国产操作系统介绍 列举典型系统如统信UOS、麒麟OS、鸿蒙OS等。分析各自的技术路线…

作者头像 李华
网站建设 2026/4/10 15:32:52

springboot特色乡村综合服务平台设计与实现_146dy0k3(源码+lw+部署讲解+答辩ppt)

目录已开发项目效果实现截图已开发项目效果实现截图开发技术系统开发工具&#xff1a;核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部…

作者头像 李华