目录
前言
自己的感想
主流测试语言:Java 和 Python
Python对于新手友好。Java要一定基础。两者都会为最好。
一、小知识点
1.1 框架作用
对于测试用例:
原来是人工将测试用例录入到测试工具中,现在需要自动读取测试用例,并将测试用例写入到Jemeter或者Postman中。【利用框架】
对于测试请求:
对于测试响应:
1.2 测试用例存储方式
企业保存测试用例的方式:
- excel
- json
- yaml
- database
1.3 excel存放位置
1.4 快速构建框架
1.4.0 步骤
- 获取测试用例
- @pytest遍历执行每条测试用例【通过发送接口请求】
- assert断言判断每个测试用例的响应值
- 获取测试报告
1.4.1 学会使用工具—— xToolkit
简单的例子
from urllib import response
import xToolkit
import requests
# 自动读取测试用例
all_tests = xToolkit.xfile.read("自动化测试用例.xls").excel_to_dict(sheet=0)
print(all_tests)
# 2.接口请求
for test in all_tests:
print("当前执行的测试用例:", test)
# 发送Http请求
response = requests.request(
url=test["接口URL"],
method=test["请求方式"],
params=eval(test["URL参数"]),
)
print("接口响应:", response.text)
requests.request():
-
根据用例中的字段动态发送 HTTP 请求。
-
关键参数解析:
-
url=test[“接口URL”]:从用例字典获取接口地址。
-
method=test[“请求方式”]:获取请求方法(GET/POST等)。
-
params=eval(test[“URL参数”]):
-
test[“URL参数”] 是字符串(如 “{‘key’: ‘value’}”),需要用 eval() 转换为字典。
-
注意:eval() 有安全风险,确保 Excel 文件可信
进阶 pytest
使用pytest来执行多条用例
from urllib import response
import xToolkit
import requests
import pytest
# 自动读取测试用例
all_tests = xToolkit.xfile.read("自动化测试用例.xls").excel_to_dict(sheet=0)
print(all_tests)
# 2.接口请求
@pytest.mark.parametrize("test",all_tests)
def test_case_exec(test):
print("当前执行的测试用例:", test)
response = requests.request(
url=test["接口URL"],
method=test["请求方式"],
params=eval(test["URL参数"]),
)
print("接口响应:", response.text)
解析
@pytest.mark.parametrize:
- pytest的装饰器,用于
参数化测试
- 将 all_tests(Excel读取的字典列表)中的每条用例依次传入
test
参数。
test_case_exec(test): - 每条测试用例执行时,
test
是一个字典,包含接口URL、请求方式、参数等。
注意:运行的特殊性
pytest的运行,需要你在@pytest的位置右击选择“Run”,这样才是运行pytest部分的代码。
pytest的可取地方是,能直观的看到测试用例中有多少是通过的。
思考
excel表格中存储所有的测试用例。
测试用例中包含了测试的请求内容和响应内容。
对于请求内容我们遍历发送Http请求
对于响应内容,我们如何遍历进行比对呢?
断言,用于判断结果是否相同
# 3.接口响应——断言判断
assert test['预期状态码'] == response.status_code, '测试不通过,状态码不对'
测试报告——allure插件
allure安装前需要先安装JDK。我的当前环境是pycharm和IDEA都是2024版,所以可以直接用JDK17.
而JDK17的环境变量配置如下:
注意:allure的安装好后,也是配置环境变量。可以在网上找找。
运行前需安装 allure-pytest
pip install allure-pytest
之后点击运行,就能生成两个文件夹,一个是allure-result,另一个是测试报告。如下图:
更新时间
- 2025-04-16:创建。