本文主要介绍了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相关推荐

  1. pytest的fixture传参数

    为了提高复用性,我们在写测试用例的时候,会用到不同的fixture, 比如:最常见的登录操作,大部分的用例的前置条件都是登录 假设不同的用例想登录不同的测试账号, 那么登录fixture就不能把账号写 ...

  2. 跳槽涨薪技术之python+pytest接口自动化(6)-请求参数格式的确定

    [文章末尾给大家留下了大量的福利] 我们在做接口测试之前,先需要根据接口文档或抓包接口数据,搞清楚被测接口的详细内容,其中就包含请求参数的编码格式,从而使用对应的参数格式发送请求.例如某个接口规定的请 ...

  3. 接口向mapper传参数

    接口向mapper传递参数 第一种方案 DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xml <sel ...

  4. pytest_函数传参和firture传参数request

    前言 为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数. 比如登录操作,大部分的用例都会先登录,那就需要把登录单独抽出来写个函数,其它用例全部的调用这个登陆函数就行. ...

  5. java 通过Ajax前台传参数 并用 HttpURLConnection Post方式访问对外的接口

    前两天做项目遇到一个问题,就是在自己的项目中要去访问项目外部的接口,从自己的项目中传参数过去,通过调用 对方提供的接口去获取想要得到的数据!第一次接触到在自己项目中去访问和调用外部的资源,然后在网上去 ...

  6. jmeter存储http请求返回参数_Jmeter接口测试之HTTP请求默认值(八)

    原标题:Jmeter接口测试之HTTP请求默认值(八) 不管是在UI级别的自动化测试还是在接口级别的自动化测试中,对公共数据数据的分离都是一种趋势,或者某种程度来说,这是自动化测试中必须要掌握的一种能 ...

  7. pytest接口自动化测试框架搭建

    文章目录 一. 背景 二. 基础环境 三. 项目结构 四.框架解析 4.1 接口数据文件处理 4.2 封装测试工具类 4.3 测试用例代码编写 4.4 测试用例运行生成报告 一. 背景 Pytest目 ...

  8. pytest接口自动化测试框架 | 用python代码测试接口

    视频来源:B站<冒死上传!pytest接口自动化测试框架(基础理论到项目实战及二次开发)教学视频[软件测试]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...

  9. 接口测试之Postman使用全指南(原来使用 Postman测试API接口如此简单)

     目录 一.Postman背景介绍 二.Postman的操作环境 三.Postman重要提示: 四.什么是接口测试 五.接口测试工具 六.接口测试流程 七.接口测试执行 八.全局变量和环境变量 九.p ...

最新文章

  1. Oracle trunc()函数的用法
  2. P2730 魔板 Magic Squares (搜索)
  3. Scala模式匹配,case 字符串,case 匹配类型,case 匹配数组,case 匹配List,case 匹配元组,case匹配case class和case object
  4. 参加JavaEE培训需要什么条件
  5. Android客户端性能测试(一):使用APT测试Android应用性能
  6. POJ - 2083 Fractal(dfs,递归画图)
  7. Python中实现模糊匹配的魔法库:FuzzyWuzzy
  8. assembly : maven assembly打包报错:maven to create assembly : unable to obtain archiver for extension
  9. Vue 3 首个 RC 版本发布
  10. html鼠标变成小手_什么牌子的鼠标好用?2020双十一鼠标选购建议和产品推荐
  11. 直播无线领夹式麦克风
  12. jav基础01 jdk jre jvm 与 配置环境变量
  13. 适当修改LIO-SAM_based_relocalization解决初始重定位显示错误
  14. 看到大一的PS作业,忍不住想吐槽!!
  15. 提升项目经理谈话能力的十个实用技巧
  16. 使用idm下载bili播放列表视频
  17. 音频对游戏玩家体验的影响有多大?
  18. 附加作业:个人作业——案例分析
  19. 物联网技术在智慧电网中的应用-Susie 周
  20. 都给你总结好了 电路基础知识精粹版

热门文章

  1. 用漫画了解 Linux 内核到底长啥样
  2. 看,这就是你心心念的研究生生活
  3. 你稀里糊涂学的算法复杂度,原来这么简单!
  4. 美多商城之支付(评价订单商品)
  5. 用户组管理之更新分组表数据
  6. MySQL数据库修改表结构
  7. 程序的编译、链接和执行
  8. JSP第二次作业_1小题
  9. 学习抖音上如何一下删除大型文件,源代码给出!
  10. 语义SLAM近5年主要技术进展及研究趋势