网站首页 > 技术文章 正文
背景
在当今快速发展的互联网时代,UI 需求越来越大、越来越高大上、越来越复杂,相对应的 App 作为最重要的大前端的一部分,也不可避免。
App 迭代的不断加速,需求的不断复杂化,给测试人员增加了非常大的工作量,但是没办法,测试是保证产品质量的一道非常重要的关卡,只有通过这道关卡,产品的质量才能得到真正的提高。
自动化测试
但是随着 App 的需求复杂化,测试人员似乎已经没有很多精力去应对这一场景,所以自动化测试就出世了,让机器来帮我们做大量的、复杂的、重复的测试工作,是现在测试的趋势。
选择正确的 自动化测试工具,也是一件非常重要的事情。
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
- 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)
使用 Apifox 进行 API 自动化测试
那么测试完 UI 界面之后,我们如何更好地去单独测试 API 层面呢?我们需要借助一些比较出色的 API 工具去进行测试,比如 Apifox。
创建 API 请求
我们需要先创建一个 API 请求,填入路径、名称、请求方法。
编写断言脚本
接着我们到 后置脚本 中,选择自定义脚本。
Apifox 已经为我们提供了现成的脚本语句,我这里想要判断返回的 status code 是否为 200。
然后点击保存按钮,即可成功创建请求。
运行得到响应和断言结果
到运行页,点击发送按钮,则可得到响应,以及断言结果。
知识扩展
猜你喜欢
- 2025-07-06 Apifox--比 Postman 还好用的 API 测试工具
- 2025-07-06 前端测试利器:全面解析 Jest 的魅力与实战技巧
- 2025-07-06 AI辅助开发实战经验总结:Trae、Cursor 与 MCP 工具组合评测
- 2025-07-06 一文了解 Telerik Test Studio 测试神器
- 2025-07-06 OpenAI在GitHub上发布了用于自动化前端测试的 AI 代理的演示
- 2024-10-09 软件测试开发丨PageObject模式:为什么是Web自动化测试必备工具
- 2024-10-09 python自动化测试工具selenium使用指南
- 2024-10-09 AutoRunner自动化测试工具 自动化测试app
- 2024-10-09 Katalon Studio 自动化测试工具介绍
- 2024-10-09 Afuzz:一款功能强大的自动化Web路径模糊测试工具
你 发表评论:
欢迎- 594℃几个Oracle空值处理函数 oracle处理null值的函数
- 587℃Oracle分析函数之Lag和Lead()使用
- 575℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 572℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 568℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 560℃【数据统计分析】详解Oracle分组函数之CUBE
- 548℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 541℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- 前端获取当前时间 (50)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)