from httprunner import HttpRunner中的httprunner是什么
时间: 2023-11-17 19:08:22 浏览: 161
`httprunner` 是一款基于 Python 的开源接口自动化测试框架,它提供了丰富的接口测试功能和灵活的测试用例编写方式,支持 HTTP(S)、TCP、WebSocket 等多种协议的接口测试。`HttpRunner` 则是 httprunner 框架中的核心类,它提供了测试用例的加载、运行和断言等功能,是编写接口测试用例的重要组成部分。
具体来说,`HttpRunner` 类包含以下主要功能:
- 加载测试用例:通过 `HttpRunner().load_testsuites()` 方法加载测试用例,支持加载 YAML、JSON 和 Python 文件格式的测试用例。
- 运行测试用例:通过 `HttpRunner().run()` 方法运行测试用例,支持单个测试用例、测试集和测试目录的运行。
- 断言测试结果:通过 `HttpRunner().assert_test_passes()` 方法断言测试结果,支持 HTTP(S) 接口的响应断言、变量提取和使用、函数调用和自定义断言等功能。
因此,`from httprunner import HttpRunner` 的作用是导入 httprunner 框架中的 `HttpRunner` 类,并使用它来加载、运行和断言接口测试用例。
相关问题
ImportError: cannot import name 'HttpRunner' from 'httprunner' (C:\Users\27913\Desktop\web-framework-master\httprunner\__init__.py)
这个错误可能是由于 httprunner 包没有正确安装或者安装的 httprunner 版本过低导致的。建议你先检查一下 httprunner 包的安装情况,可以使用以下命令来查看 httprunner 包的版本信息:
```
pip show httprunner
```
如果你没有看到任何 httprunner 包的信息,请尝试重新安装 httprunner:
```
pip install httprunner
```
如果 httprunner 包已经正确安装,并且版本号高于 3.0,那么可能是因为你的代码中导入 httprunner 的方式不正确。请确保你的代码中使用以下方式导入 HttpRunner 类:
```
from httprunner import HttpRunner
```
如果仍然出现报错,建议你升级 httprunner 到最新版本:
```
pip install -U httprunner
```
希望这些方法能够帮助你解决问题。
# NOTE: Generated By HttpRunner v3.1.6 # FROM: har\.\xiaoqu.har import allure from httprunner import HttpRunner, Config, Step, RunRequest, RunTestCase class TestCaselogin(HttpRunner): config = Config("testcase description").verify(False).variables(**{"url": "http://iot.homecommunity.cn"}) teststeps = [ Step(RunRequest("============登录============").post("${url}/api/user/login") .with_json( {'username': 'admin2', 'password': 'hc123456'}) .extract().with_jmespath("body.data.token", "token").validate().assert_equal( "body.msg", "成功", "返回登录成功").assert_equal("body.code", 0, "返回code正确"))] if __name__ == '__main__': TestCaselogin().test_start()我要做登录账号密码的数据驱动,实现多条验证case该怎么写
你可以使用 HttpRunner 的数据驱动功能,将多组账号密码数据存储在 Yaml 文件中,然后在测试用例中通过数据驱动来实现多条验证 case。示例代码如下:
```python
# -*- coding: utf-8 -*-
# 该代码仅为示例,具体实现需要根据你的测试环境和需求进行修改
import os
from httprunner import HttpRunner, Config, Step, RunRequest, RunTestCase, RunTestSuite
class TestLogin(HttpRunner):
config = Config("登录接口测试")
testcases = []
# 读取 Yaml 文件中的数据
with open(os.path.join(os.getcwd(), "test_data.yaml"), encoding='utf-8') as f:
test_data = yaml.safe_load(f)
# 循环遍历数据,生成多条测试用例
for data in test_data:
testcase = {
"name": data["case_name"],
"teststeps": [
Step(
RunRequest("登录接口")
.post("${config.host}/api/user/login")
.with_headers(**{"Content-Type": "application/json"})
.with_json(data["request_body"])
.extract()
.with_jmespath("body.data.token", "token")
.validate()
.assert_equal("body.code", 0, "返回 code 正确")
.assert_equal("body.msg", "成功", "返回登录成功")
)
]
}
testcases.append(testcase)
if __name__ == "__main__":
TestLogin().test_start()
```
其中,`test_data.yaml` 文件中的数据格式如下:
```yaml
- case_name: "用户名和密码正确"
request_body:
username: "admin"
password: "123456"
- case_name: "用户名正确密码错误"
request_body:
username: "admin"
password: "123"
- case_name: "用户名错误密码正确"
request_body:
username: "admin123"
password: "123456"
```
你可以根据实际需要修改数据格式和测试用例名称。
阅读全文