pytest接口测试之fixture传参数request
本文主要介绍了pytest接口测试之fixture传参数request的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 |
前言
有的测试用例,需要依赖于某些特定的case才可以执行,比如登录获取到token,后面的请求都需要带着,为了确保在同一用户,必须带着和登录时获取的cookies。
大部分的用例都会先登录,就需要把登录单独抽出来写个函数,其他用例全部调用这个登录函数就行,但是登录的账号不能写死。
一、函数传参
单独写个登录函数,传2个参数user和password,写用例的时候调用登录函数,输入几组user、password参数化。需要用到装饰器$pytest.mark.parametrize,里面写两个参数
第1个参数是字符串,多个参数中间用逗号隔开
第2个参数是list,多组数组用元组类型
import pytestdef login(user, password):'''登录函数'''print('用户名:%s' % user)print('密码:%s' % password)return 'hello'login_data = [('admin', '123456'), ('admin','')]# 装饰器 @pytest.mark.parametrize('user, password', login_data) def test_login(user, password):'''登录测试用例'''result = login(user, password)assert result == 'hello'if __name__ == '__main__':pytest.main('-s', 'day0110_fixture.py') ''' 运行结果 ============================= test session starts ============================= platform win32 -- Python 3.6.6, pytest-4.5.0, py-1.8.0, pluggy-0.13.1 rootdir: F:\python work\youyou_class\study_pytestcollected 2 itemsday0110_fixture.py .用户名:admin 密码:123456 .用户名:admin 密码:[100%]========================== 2 passed in 0.02 seconds =========================== '''
request参数
request就是我需要什么东西,用来接受参数,用到@pytest.fixture装饰器,传参就用默认的request参数,user = request.param 这一步是接收传入的参数。
import pytest# 测试账号数据 test_data = ["admin1", "admin2"]@pytest.fixture(scope="function") def login(request):user = request.paramprint("登录账户:%s"%user)return user@pytest.mark.parametrize("login", test_data, indirect=True) def test_login(login):"""登录用例"""a = loginprint("测试用例中login的返回值:%s" % a)assert a != ""
indirect=True 参数是为了把login当作一个函数去执行,而不是一个参数
request传两个参数
如果用到@pytest.fixture,里面用2个参数情况,可以把多个参数用一个字典去存储,这样最终还是只传一个参数。
不同的参数再从字典里面取对应key值就行,如: user = request.param[“user”]
#_*_coding:utf-8_*_ # 作者 :Administrator # 创建时间 :2020/1/1018:18 # 文件 :day0110_fixture.pyimport pytest@pytest.fixture(scope='function') def login(request):'''登录函数'''user = request.param['user']password = request.param['password']print('用户名:%s' % user)print('密码:%s' % password)return 'hello'login_data = [{'user': 'admin', 'password': '123456'}, {'user': 'admin', 'password': '1'}]# 装饰器 @pytest.mark.parametrize('login', login_data, indirect=True) def test_login(login):'''登录测试用例'''result = loginassert result == 'hello'if __name__ == '__main__':pytest.main('-s', 'day0110_fixture.py') ''' 运行结果: ============================= test session starts ============================= platform win32 -- Python 3.6.6, pytest-4.5.0, py-1.8.0, pluggy-0.13.1 rootdir: F:\python work\youyou_class\study_pytestcollected 2 itemsday0110_fixture.py 用户名:admin 密码:123456 .用户名:admin 密码:1 . [100%]========================== 2 passed in 0.02 seconds ==========================='''
到此这篇关于pytest接口测试之fixture传参数request的使用的文章就介绍到这了
pytest接口测试之fixture传参数request相关推荐
- pytest的fixture传参数
为了提高复用性,我们在写测试用例的时候,会用到不同的fixture, 比如:最常见的登录操作,大部分的用例的前置条件都是登录 假设不同的用例想登录不同的测试账号, 那么登录fixture就不能把账号写 ...
- 跳槽涨薪技术之python+pytest接口自动化(6)-请求参数格式的确定
[文章末尾给大家留下了大量的福利] 我们在做接口测试之前,先需要根据接口文档或抓包接口数据,搞清楚被测接口的详细内容,其中就包含请求参数的编码格式,从而使用对应的参数格式发送请求.例如某个接口规定的请 ...
- 接口向mapper传参数
接口向mapper传递参数 第一种方案 DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xml <sel ...
- pytest_函数传参和firture传参数request
前言 为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数. 比如登录操作,大部分的用例都会先登录,那就需要把登录单独抽出来写个函数,其它用例全部的调用这个登陆函数就行. ...
- java 通过Ajax前台传参数 并用 HttpURLConnection Post方式访问对外的接口
前两天做项目遇到一个问题,就是在自己的项目中要去访问项目外部的接口,从自己的项目中传参数过去,通过调用 对方提供的接口去获取想要得到的数据!第一次接触到在自己项目中去访问和调用外部的资源,然后在网上去 ...
- jmeter存储http请求返回参数_Jmeter接口测试之HTTP请求默认值(八)
原标题:Jmeter接口测试之HTTP请求默认值(八) 不管是在UI级别的自动化测试还是在接口级别的自动化测试中,对公共数据数据的分离都是一种趋势,或者某种程度来说,这是自动化测试中必须要掌握的一种能 ...
- pytest接口自动化测试框架搭建
文章目录 一. 背景 二. 基础环境 三. 项目结构 四.框架解析 4.1 接口数据文件处理 4.2 封装测试工具类 4.3 测试用例代码编写 4.4 测试用例运行生成报告 一. 背景 Pytest目 ...
- pytest接口自动化测试框架 | 用python代码测试接口
视频来源:B站<冒死上传!pytest接口自动化测试框架(基础理论到项目实战及二次开发)教学视频[软件测试]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...
- 接口测试之Postman使用全指南(原来使用 Postman测试API接口如此简单)
目录 一.Postman背景介绍 二.Postman的操作环境 三.Postman重要提示: 四.什么是接口测试 五.接口测试工具 六.接口测试流程 七.接口测试执行 八.全局变量和环境变量 九.p ...
最新文章
- Oracle trunc()函数的用法
- P2730 魔板 Magic Squares (搜索)
- Scala模式匹配,case 字符串,case 匹配类型,case 匹配数组,case 匹配List,case 匹配元组,case匹配case class和case object
- 参加JavaEE培训需要什么条件
- Android客户端性能测试(一):使用APT测试Android应用性能
- POJ - 2083 Fractal(dfs,递归画图)
- Python中实现模糊匹配的魔法库:FuzzyWuzzy
- assembly : maven assembly打包报错:maven to create assembly : unable to obtain archiver for extension
- Vue 3 首个 RC 版本发布
- html鼠标变成小手_什么牌子的鼠标好用?2020双十一鼠标选购建议和产品推荐
- 直播无线领夹式麦克风
- jav基础01 jdk jre jvm 与 配置环境变量
- 适当修改LIO-SAM_based_relocalization解决初始重定位显示错误
- 看到大一的PS作业,忍不住想吐槽!!
- 提升项目经理谈话能力的十个实用技巧
- 使用idm下载bili播放列表视频
- 音频对游戏玩家体验的影响有多大?
- 附加作业:个人作业——案例分析
- 物联网技术在智慧电网中的应用-Susie 周
- 都给你总结好了 电路基础知识精粹版