
本文共 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测试用例。如果遇到问题,请参考官方文档或社区资源,感谢您的参与与支持!
发表评论
最新留言
关于作者
