本文主要是介绍3、httprunner基本用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、.env文件
base_url,配置信息等可以写在里面然后用 ${ENV()} 引用
login.yml
config:name: 登录幕布variables: {}verify: false
teststeps:
- name: /v3/api/user/phone_loginrequest:headers:accept: application/json, text/plain, */*accept-encoding: gzip, deflate, braccept-language: zh-CN,zh;q=0.9content-length: '69'content-type: application/json;charset=UTF-8data-unique-id: 7b70bf17-50f2-470e-ae20-ecbbd0d6190fjwt-token: ''origin: https://mubu.comreferer: https://mubu.com/sec-ch-ua: '"Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"'sec-ch-ua-mobile: ?0sec-ch-ua-platform: '"Windows"'sec-fetch-dest: emptysec-fetch-mode: corssec-fetch-site: same-siteuser-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36version: 3.0.0-2.0.0.1824x-request-id: 8a061286-b850-40a2-b680-6a0314367fedjson:callbackType: 0password: ${ENV(PASSWORD)}phone: ${ENV(PHONE)}method: POSTurl: https://api2.mubu.com/v3/api/user/phone_loginvalidate:- eq:- status_code- 200- eq:- body.code- 0
2、debugtalk.py
可以利用debugtalk.py写动态计算的方法(类似pytest中的conftest.py)等,然后直接用 ${函数名()} 调用
debugtalk.py
import time
import os
from httprunner import __version__from testcases.login_test import TestCaseLoginpath = os.path.dirname(__file__) + '/cookies'def get_httprunner_version():return __version__def sum_two(m, n):return m + ndef sleep(n_secs):time.sleep(n_secs)def get_token():if (os.path.exists(path)):with open(path,mode='r',encoding='utf-8') as f:token=f.read()print(f'获取的token为:{token}')return tokenelse:with open(path,mode='w'):TestCaseLogin().test_start()print("生成token")def set_token(login_response):with open(path,'w') as f:f.write(login_response.json['data']['token'])def get_file_name():return ['利用debugtalk创建的文件夹1','利用debugtalk创建的文件夹2']if __name__ == '__main__':# get_token()print(os.path.dirname(__file__))
create_dir_test.py
# NOTE: Generated By HttpRunner v3.1.6
# FROM: har\create_dir.yml
import pytest
from httprunner import Parameters
from httprunner import HttpRunner, Config, Step, RunRequest, RunTestCase
#取别名,防止pytest 把导入的以Test开头的用例也执行了
from testcases.login_test import TestCaseLogin as Loginclass TestCaseCreateDir(HttpRunner):config = Config("HttpRunner实现幕布接口-文件夹add操作")\.verify(False).export(*['folder_id'])teststeps = [# Step(# RunTestCase("运行前置用例-登录")# .call(Login)# .export(*['token']) #1、运行Login用例,把token变量导出在当前用例使用,这里不写export的话,Login用例中的Config使用export也可# ),Step(RunRequest("幕布-新增文件夹").post("https://api2.mubu.com/v3/api/list/create_folder").with_headers(**{"accept": "application/json, text/plain, */*","accept-encoding": "gzip, deflate, br","accept-language": "zh-CN,zh;q=0.9","content-length": "33","content-type": "application/json;charset=UTF-8","data-unique-id": "7b70bf17-50f2-470e-ae20-ecbbd0d6190f","jwt-token": "${get_token()}","origin": "https://mubu.com","referer": "https://mubu.com/","sec-ch-ua": '"Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"',"sec-ch-ua-mobile": "?0","sec-ch-ua-platform": '"Windows"',"sec-fetch-dest": "empty","sec-fetch-mode": "cors","sec-fetch-site": "same-site","user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36","version": "3.0.0-2.0.0.1824","x-request-id": "195dee55-182a-4eb7-a307-714fa3f72dd1",}).with_json({"folderId": "0", "name": "测试toke通过文件传递22"}).extract().with_jmespath('body.data.folder.id',"folder_id").validate().assert_equal("status_code", 200).assert_equal("body.code", 0)),]if __name__ == "__main__":TestCaseCreateDir().test_start()
这篇关于3、httprunner基本用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!