首页 > 其他分享 >pytest参数化

pytest参数化

时间:2022-10-24 16:57:01浏览次数:50  
标签:False json pytest 参数 test article data

使用pytest内置的装饰器 @pytest.mark.parametrize()

1.JSON文件驱动

{
"test_data": [
[
{
"alias": "haozi",
"canComment": "False",
"content": "11111",
"editorType": "markdown",
"markdown": "11111",
"privacy": "False",
"recommended": "False",
",rubbish": "False",
",title": "laoshu",
"typeId": ""
},
"None"
],
[
{
"alias": "haozi",
"canComment": "False",
"content": "11111",
"editorType": "markdown",
"markdown": "11111",
"privacy": "False",
",recommended": "False",
",rubbish": "False",
"title": "laoshu",
"typeId": "AAA"
},
"java.sql.SQLException: Incorrect integer value: 'AAA' for column 'typeId' at row 1"
]
]
}

 data = json.load(open('D:/tools/pycharm/autotest/data/article.json',mode='r',encoding='utf8')) #使用load加载返回一个字典

test_data = data['test_data']

@pytest.mark.parametrize('article_data,msg',test_data)
def test_create_article(article_data,msg):
r = requests.post(baseurl, json=article_data, headers=heards)
logger.debug(f'发送请求:{r}')
assert str(r.json()['message']) == msg

2.Excel文件驱动
wb = load_workbook("D:/tools/pycharm/autotest/data/data.xlsx")

ws = wb['articles']

test_data = []
for x in range(2,len(tuple(ws.rows))+1): #循环行
testcase_data = []
for y in range(2,7): #循环某一行的所有列
testcase_data.append(ws.cell(row=x, column=y).value) #循环完一列把单元格数据放到列表里,一行数据组成一个列表
print(ws.cell(row=x, column=y).value)
test_data.append(testcase_data) #循环完一行数据把列表放到test_data列表


##test_data = file_utils.parse_excel_file('D:/tools/pycharm/autotest/data/data.xlsx','articles')
@pytest.mark.parametrize('url,method,article_data,code,msg',test_data)
def test_article_create(url,method,article_data,code,msg):
if method == 'post':
r = requests.post(url,article_data,headers=headers)
logger.debug(f'发送请求:{r}')
assert r.status_code == code
assert r.json()['message'] == msg

标签:False,json,pytest,参数,test,article,data
From: https://www.cnblogs.com/yitian395/p/16821641.html

相关文章

  • java 修改HttpServletRequest的参数或请求头
     场景:过滤器中获取参数Token并添加到请求头(用户认证兼容老系统)请求头和请求参数是不能直接修改,也没有提供修改的方法,但是可以在过滤器和拦截器中使用​​​HttpServletReq......
  • Qt使用https协议发送带参数的post请求
    背景:现在公司项目需要做一个检测更新的功能,通过访问后台接口,判断是否需要更新。后台接口是https协议的,接口需要post请求,需要带参数,来判断是哪个软件需要做检测更新的操......
  • 详解 Eureka 控制台参数
    详解Eureka控制台参数本篇将会给大家讲解我在本地搭建的Eureka集群环境下,Eureka控制台的参数说明。系统状态进入Eureka控制台页面,本地可以访问http://localhost:87......
  • 无参数rce
    无参数rce关于了解无参数rce之前,我们先看一下rcerce可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。但是究竟什么是无参rce,我们通过一段......
  • Jenkins+allure+pytest 完整下载安装配置小白教程(自动化持续集成)
     具体学习视频可以参考:https://www.bilibili.com/video/BV1Bf4y1L7su/?spm_id_from=333.337.search-card.all.click&vd_source=59b7787316220625d1c23b055c444107  ......
  • JSTL C标签怎么判断参数是否为空
    有时候我们在使用JSTLC标签<c:if>语句的时候,想判断参数是否为空,怎么判断呢,下面来分享一下方法工具/原料JSTLC标签JSTLC标签判断参数是否为空方法方法/步骤第......
  • 常用的JVM参数
    常用的JVM参数内容会持续补充堆内存相关序号参数解释1-XmsJVM启动时申请的初始Heap值,eg:-Xms1G堆内存初始值为1G2-XX:InitialHeapSizeJVM启动时申......
  • C/C++ 一维数组和二维数组参数传递的几种方式
    一维数组:#include<iostream>#include<windows.h>#include<string>usingnamespacestd;//在以下几种方法中,ages都不是真正的数组,实际上是一个指针int*agesint......
  • Strrocks的参数设置
    查看所有的参数showvariableslike"%%";查看cbo_enable_low_cardinality的参数showvariableslike"%cbo_enable_low_cardinality%";参数设置setglobalcbo_enable_low_......
  • go gin 获取 参数
      post             get  ......