httprunner3.x python语言编写测试用例
发布日期:2021-05-13 21:49:01 浏览次数:24 分类:精选文章

本文共 2698 字,大约阅读时间需要 8 分钟。

httprunner测试用例编写指南

一、基础概念理解

httprunner是一个基于pytest的测试框架,支持通过代码文件定义测试用例并执行。本文将指导您编写一个典型的登录接口测试用例。

1.1框架结构

测试用例主要位于类似<pre> mooie code hier</pre>中,包含config和teststeps部分。Config用于全局设置,teststeps则定义具体的测试步骤。

1.2关键方法说明

-RunRequest():创建HTTP请求,name参数必填。

-request方式():如.post(), .get()设置请求方法。

-与headers(),与json(),与params()等设置请求参数。

-提取和验证:extract()提取响应数据,validate()执行断言。

二、示例代码解析

from httprunner import (HttpRunner, Config, Step, RunRequest, RunTestCase)
class TestCaseLogin(HttpRunner):
config = (
Config("login")
.variables(**{
"user_name": "${ENV(USERNAME)}",
"password": "${ENV(PASSWORD)}"
})
.base_url("${ENV(HOSTURL)}")
.verify(False)
)
teststeps = [
Step(
RunRequest('login')
.with_variables(**{
'length': 32,
'status_code': 201,
'status': 1
})
.post('/client/user/auth')
.with_headers({
"Content-Type": "application/json"
})
.with_json({
"scenario": "client",
"company_id": 5940,
"user_name": "$user_name",
"password": "$password",
"device_type": "2",
"device": ""
})
.extract()
.with_jmespath("body.data.token", "token")
.validate()
.assert_equal('status_code', '$status_code', '断言失败')
.assert_equal('body.status', '$status', '断言失败')
.assert_length_equal('body.data.token', '$length', '断言失败')
),
Step(
RunRequest('index')
.with_variables(**{
'status_code': 200,
'status': 1
})
.get('/client/user/index')
.with_headers({
"Content-Type": "application/json",
'token': '$token'
})
.extract()
.validate()
.assert_equal('body.status', '$status', '断言失败')
.assert_equal('status_code', '$status_code', '断言失败')
.assert_equal('body.data.user_info.author_name', '$user_name', '断言失败')
)
]
if name == 'main':
TestCaseLogin().test_start()

2.1 config部分解析

Config初始化并设置name为'login',然后设置环境变量,如user_name、password,以及base_url和verify方法。

2.2 teststeps详细解析

每个Step创建一个RunRequest,设置请求方式、URL、headers、json数据等。对于登录请求,使用.post()方法,传递用户信息,并提取token后进行验证。第二个Step获取用户信息,验证响应内容。

三、运行测试用例

使用命令运行测试用例:

python -m pytest -v -s testcase_student_login_test.py

四、常见问题解答

问题1:变量引用出错

确保变量名称正确且一致,尤其是在config中定义的变量是否在teststeps中正确引用。

问题2:断言方法未找到

检查assert_equal是否正确,确保参数顺序和类型匹配。

问题3:请求失败

检查base_url是否正确,确保环境变量设置无误,必要时检查网络连接。

问题4:提取数据错误

使用正确的jmespath表达式进行提取,确保路径准确。

问题5:代码可读性差

合理分组步骤,添加注释,保持代码简洁和高效。

五、改进与优化

使用.iwaiji Virme:将密钥和secrets分开,确保信息安全。

添加日志记录,上传测试结果到Allure,方便报告查看。

对于复杂项目,建议分成多个测试文件,缓解维护难度。

六、结语

通过以上步骤,您可以编写并执行成功的httprunner测试用例。如果遇到问题,请参考官方文档或社区资源,感谢您的参与与支持!

上一篇:httprunner3.x 参数化数据驱动
下一篇:httprunner3.x .har文件处理运行

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年05月02日 10时41分48秒