from httprunner import HttpRunner, Config, Step, RunRequest, RunTestCase
from testcases.login_test import TestCaseLogin as login
class TestCaseT2(HttpRunner):
#测试特性的名称
config = Config("播单模块") \
#host
.base_url("api.testing.com") \
#这是一个全局变量
.variables(
**{
" a": "这是一个全局变量",
" b": "这是一个全局变量",
}
) \
#导出用例中的变量,作为全局变量
.export("tokens") \
#是否验证tsl证书 (https协议的接口使用)
.verify(False)
teststeps = [
#这是第一条测试用例
Step(
#测试用例的名称
RunTestCase("登录")
#变量
.with_variables(**{"user_name": "13428750584",
"password": "111111",})
#测试用例调用
.call(login)
#提取变量,在后续的测试用例中可引用
.export("token")
),
#这是第二条测试用例
Step(
#测试用例名称
RunRequest("获取播单列表")
#url
.get("https://api.testing.net/content/v1/play_list")
#get是params,post是data或者json
.with_params(**{"page": "1", "per_page": "12"})
#headers
.with_headers(
**{
"authorization": "${tokens}",
"x-hb-client-type": "android",
}
)
#cookie
.with_cookies(**{"HBSID": "${token}"})
#setup_hooks: 在 HTTP 请求发送前执行 hook 函数,主要用于准备工作;也可以实现对请求的 request 内容进行预处理。
#teardown_hooks: 在 HTTP 请求发送后执行 hook 函数,主要用于测试后的清理工作;也可以实现对响应的 response 进行修改,例如进行加解密等处理。
.teardown_hook("${sleep(5)}")
#提取参数,并且保存到变量中,在后续的测试用例中可引用
.extract()
.with_jmespath("body.list[*].id | [1]", "playlist_id")
#断言
.validate()
.assert_equal("status_code", 200)
),
]
if __name__ == "__main__":
TestCaseT2().test_start()
网友评论