4、httprunner参数化

2023-12-30 12:08
文章标签 参数 httprunner

本文主要是介绍4、httprunner参数化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、parameters参数

运行次数是笛卡尔积的计算方式,如下将运行2*2=4次

yml方式

config:name: 登录幕布variables: {}parameters:phone: ['13104978922','13722349423']password: ['123456','2345']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: $passwordphone: $phonemethod: POSTurl: https://api2.mubu.com/v3/api/user/phone_loginvalidate:-   eq:- status_code- 200-   eq:- body.code- 0

py文件方式

# NOTE: Generated By HttpRunner v3.1.6
# FROM: testcases\ddt\create_dir.ymlimport pytest
from httprunner import Parametersfrom httprunner import HttpRunner, Config, Step, RunRequest, RunTestCaseclass TestCaseCreateDir(HttpRunner):@pytest.mark.parametrize("param", Parameters({"newfile": ["新增文件夹1", "新增文件夹2", "新增文件夹3"]}))def test_start(self, param):super().test_start(param)config = Config("HttpRunner实现幕布接口增删改查").verify(False)teststeps = [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": "$newfile"}).validate().assert_equal("status_code", 200).assert_equal("body.code", 0)),]if __name__ == "__main__":TestCaseCreateDir().test_start()

二、debugtalk.py方式

直接使用${函数名()} 调用

# NOTE: Generated By HttpRunner v3.1.6
# FROM: har\create_dir.yml
from typing import Dictimport pytest
from httprunner import HttpRunner, Config, Step, RunRequest, Parameters
#取别名,防止pytest 把导入的以Test开头的用例也执行了
from testcases.login_test import TestCaseLogin as Loginclass TestCaseCreateDirDeTalk(HttpRunner):@pytest.mark.parametrize("param", Parameters({"filename": "${get_file_name()}"}))def test_start(self, param):super().test_start(param)config = Config("HttpRunner实现幕布接口-文件夹add操作")\.verify(False).export(*['folder_id','param'])teststeps = [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": "$filename"}).extract().with_jmespath('body.data.folder.id',"folder_id").validate().assert_equal("status_code", 200).assert_equal("body.code", 0)),]if __name__ == "__main__":TestCaseCreateDirDeTalk().test_start()

三、CSV方式

1、新建文件 testdata/userpwd.csv

phone,password
13822228765,12312
13822508211,baba139262265
13822508676,baba139262144

2、yml方式

config:name: 登录幕布variables: {}parameters:phone-password: ${P(testdata/userpwd.csv)}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: $passwordphone: $phonemethod: POSTurl: https://api2.mubu.com/v3/api/user/phone_loginvalidate:-   eq:- status_code- 200-   eq:- body.code- 0

2、py文件方式

# NOTE: Generated By HttpRunner v3.1.6
# FROM: testcases\ddt\login_ddt_csv.ymlimport pytest
from httprunner import Parametersfrom httprunner import HttpRunner, Config, Step, RunRequest, RunTestCaseclass TestCaseLoginDdtCsv(HttpRunner):@pytest.mark.parametrize("param", Parameters({"phone-password": "${P(testdata/userpwd.csv)}"}))def test_start(self, param):super().test_start(param)config = Config("登录幕布").verify(False)teststeps = [Step(RunRequest("/v3/api/user/phone_login").post("https://api2.mubu.com/v3/api/user/phone_login").with_headers(**{"accept": "application/json, text/plain, */*","accept-encoding": "gzip, deflate, br","accept-language": "zh-CN,zh;q=0.9","content-length": "69","content-type": "application/json;charset=UTF-8","data-unique-id": "7b70bf17-50f2-470e-ae20-ecbbd0d6190f","jwt-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": "8a061286-b850-40a2-b680-6a0314367fed",}).with_json({"callbackType": 0, "password": "$password", "phone": "$phone"}).validate().assert_equal("status_code", 200).assert_equal("body.code", 0)),]if __name__ == "__main__":TestCaseLoginDdtCsv().test_start()

这篇关于4、httprunner参数化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

一文详解PostgreSQL复制参数

《一文详解PostgreSQL复制参数》PostgreSQL作为一款功能强大的开源关系型数据库,其复制功能对于构建高可用性系统至关重要,本文给大家详细介绍了PostgreSQL的复制参数,需要的朋友可... 目录一、复制参数基础概念二、核心复制参数深度解析1. max_wal_seChina编程nders:WAL

Linux高并发场景下的网络参数调优实战指南

《Linux高并发场景下的网络参数调优实战指南》在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃,本文基于真实案例分析,从参数解读、问题诊断到优... 目录一、问题背景:当并发连接遇上性能瓶颈1.1 案例环境1.2 初始参数分析二、深度诊断:连接状态与

史上最全nginx详细参数配置

《史上最全nginx详细参数配置》Nginx是一个轻量级高性能的HTTP和反向代理服务器,同时也是一个通用代理服务器(TCP/UDP/IMAP/POP3/SMTP),最初由俄罗斯人IgorSyso... 目录基本命令默认配置搭建站点根据文件类型设置过期时间禁止文件缓存防盗链静态文件压缩指定定错误页面跨域问题

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小