3、httprunner基本用法

2023-12-30 12:08
文章标签 用法 基本 httprunner

本文主要是介绍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基本用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/552798

相关文章

Springboot中Jackson用法详解

《Springboot中Jackson用法详解》Springboot自带默认json解析Jackson,可以在不引入其他json解析包情况下,解析json字段,下面我们就来聊聊Springboot中J... 目录前言Jackson用法将对象解析为json字符串将json解析为对象将json文件转换为json

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

bytes.split的用法和注意事项

当然,我很乐意详细介绍 bytes.Split 的用法和注意事项。这个函数是 Go 标准库中 bytes 包的一个重要组成部分,用于分割字节切片。 基本用法 bytes.Split 的函数签名如下: func Split(s, sep []byte) [][]byte s 是要分割的字节切片sep 是用作分隔符的字节切片返回值是一个二维字节切片,包含分割后的结果 基本使用示例: pa

C 语言的基本数据类型

C 语言的基本数据类型 注:本文面向 C 语言初学者,如果你是熟手,那就不用看了。 有人问我,char、short、int、long、float、double 等这些关键字到底是什么意思,如果说他们是数据类型的话,那么为啥有这么多数据类型呢? 如果写了一句: int a; 那么执行的时候在内存中会有什么变化呢? 橡皮泥大家都玩过吧,一般你买橡皮泥的时候,店家会赠送一些模板。 上

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

Java 多线程的基本方式

Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):

UVM:callback机制的意义和用法

1. 作用         Callback机制在UVM验证平台,最大用处就是为了提高验证平台的可重用性。在不创建复杂的OOP层次结构前提下,针对组件中的某些行为,在其之前后之后,内置一些函数,增加或者修改UVM组件的操作,增加新的功能,从而实现一个环境多个用例。此外还可以通过Callback机制构建异常的测试用例。 2. 使用步骤         (1)在UVM组件中内嵌callback函

Java基础回顾系列-第一天-基本语法

基本语法 Java基础回顾系列-第一天-基本语法基础常识人机交互方式常用的DOS命令什么是计算机语言(编程语言) Java语言简介Java程序运行机制Java虚拟机(Java Virtual Machine)垃圾收集机制(Garbage Collection) Java语言的特点面向对象健壮性跨平台性 编写第一个Java程序什么是JDK, JRE下载及安装 JDK配置环境变量 pathHe

这些ES6用法你都会吗?

一 关于取值 取值在程序中非常常见,比如从对象obj中取值 const obj = {a:1b:2c:3d:4} 吐槽: const a = obj.a;const b = obj.b;const c = obj.c;//或者const f = obj.a + obj.b;const g = obj.c + obj.d; 改进:用ES6解构赋值