Pytest中参数化之JSON文件实战
时间:2021-08-11
本文章向大家介绍Pytest中参数化之JSON文件实战,主要包括Pytest中参数化之JSON文件实战使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
login.json文件
''' { "item": [ { "requests": { "url": "http://8.135.9.42:8001/oa/sys/user/v1/loginByPwd", "body": { "token": "", "mobile": "13500000000", "pwd": "cs123456" } }, "response": [ {"code":"1000"} ] }, { "requests": { "url": "http://8.135.9.42:8001/oa/sys/user/v1/loginByPwd", "body": { "token": "f6720748de8f498db37507eabc4bca8d", "mobile": "", "pwd": "cs123456" } }, "response": [ {"code":"1001"} ] }, { "requests": { "url": "http://8.135.9.42:8001/oa/sys/user/v1/loginByPwd", "body": { "token": "f6720748de8f498db37507eabc4bca8d", "mobile": "13500000000", "pwd": "" } }, "response": [ {"code":"1001"} ] } ] } '''
json_read.py文件
''' import json def read_json(): return json.load(open('login.json','r'))['item'] # 对文件的处理,load不能加s # 返回的是数据是列表,里面套字典,每个字典有请求参数和响应数据 '''
test_json_login.py
''' import pytest import requests from pytest_study.json_read import * # 和json_read.py文件在同一目录下 @pytest.mark.parametrize('data', read_json()) def test_json_login_01(data): r = requests.post(url=data['requests']['url'], data=data['requests']['body']) # 参数data和json代表意义不一样 assert r.json()['code']==data['response'][0]['code'] if __name__ == '__main__': pytest.main(['-s', '-v', 'test_json_login.py']) """ 1 先有一个json文件写好的用例数据(格式为一个大字典,里面套列表,列表套字典(这个字典为各用例数据)) 2 取到json文件中数据,并返回列表格式 3 利用pytest中的parametrize参数化,对列表中的每个字典进行循环取值 4 利用requests库对获取到的接口进行请求 5 判断用例是否与接口返回数据一致 6 执行 总结:把用例都写在了一个文件中,数据进行了分离;然后利用pytest中的parametrize参数化对整个文件的用例进行循环并执行 """ '''
while True:
print('studying...')
原文地址:https://www.cnblogs.com/xuewei95/p/15129750.html
- hadoop3.0 Yarn支持网络资源:network原理设计文档说明【中文】
- PHP-超级全局变量
- 日志分析实战之清洗日志小实例5:实现获取不能访问url
- CentOS安装Redis、PHPredis扩展
- 日志分析实战之清洗日志小实例4:统计网站相关信息
- PHP-数组排序
- hdu---(3555)Bomb(数位dp(入门))
- PHP-循环
- 日志分析实战之清洗日志小实例3:如何在spark shell中导入自定义包
- PHP-函数
- hdu----(5045)Contest(数位dp)
- hdu----(5053)the Sum of Cube(签到题,水体)
- RHEL构建DNS服务器-多区域
- hdu----(5050)Divided Land(二进制求最大公约数)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python自制有声小说
- CVE-2017-8570及利用样本分析
- “既生 ExecutorService, 何生 CompletionService?”
- XXE -XML External Entity
- Vivado时序收敛技术(一) Baseline基础理论
- ShardingJdbc分库分表实战案例解析(上)
- ShaderDesigner:OpenGL shader调试神器
- 手动实现Promise/A+
- GJK算法计算凸多边形之间的距离
- 通过实际案例摸清楚Spring事务传播的行为
- 如何通过容器搭建稳定可靠的私有网盘(NextCloud)
- 初识ABP vNext(1):开篇计划&基础知识
- 基于 HTML5 Canvas 的病毒模拟视觉试验台
- #云开发高阶实战任务总结# 投票系统的解析与设计
- K8S 环境下的使用 ConfigMap 进行远程配置