pytest导出入参的变量值

pytest导出入参的变量值,第1张

pytest导出入参的变量值

pytest可以使用fixture来实现导出入参的变量值。fixture可以将入参的变量值存储在一个变量中,然后在测试用例中使用这个变量来访问入参的变量值。pytest导出入参的变量值

我很好奇,你们用的是什么框架,如果用的是pytest 应该搞这个完全没问题的,纯属好奇,同行。方便的话说下哈。

你这个问题很简单,如果你们用的事pytest 可以在公用函数里面定义一个函数取值,这个返回数据为

id=[]

for i in res["data"]:

####for j in i:

######## for k in i["list"]:

############ id append(k["iUserid"])

接口测试作为业务质量的重要保证手段,是整个质量保证过程中必可不少的手段了,目前主要的测试方式包括利用工具进行测试比如postman、jmeter,还有纯代码编写测试case,测试平台,一些支持通过文件写测试用例的框架等。

为什么要做接口测试

在金字塔这样的自底向上结构中,越靠近底层,测试越稳定,所以我们投入的也应该越高;同样的,越是底层,发现问题越早、越高效,修改和维护的成本也就越低。但是单元测试目前只在一些大厂做的比较好,而且单元测试要想覆盖到的全面,需要很大的投入,一般的互联网公司这块是缺失,而由于接口测试的高投资回报比,决定其大范围的应用,互联网公司也会把中心放到这块儿。

接口测试的手段

可视化工具类

常用的接口可视化界面工具有postman,和他的情敌Postwoman,jmeter也可以做,postman可以接入Jenkins实现持续集成,而且 *** 作方便,功能也很强大,现在互联网技术人员几乎人手必备。但是会有个问题,它的灵活性不够,在写接口测试用例的时候回有时会 *** 作mysql、Redis,还会调用thrift,甚至需要建立socket链接,而且无法进行版本控制。

纯代码

纯代码的测试手段是能满足所有的接口测试需求,是最灵活的一种,个人认为也是最好用的一种。不同语言生态都可以实现,比如java生态们可以使用restassured、assrtj、junit来做,python生态可以使用requests、pytest来做,不过这需要编码能力,对测试人员的要求会高一些。

测试平台

通过搭建一个测试平台,在这上面写测试用例,平台一般会提供可视化界面让测试人员编写,平台的好处是可以让不懂编码的同学也能快速写出测试用例,而且可以对测试用例进行管理,控制用例执行等。

支持文件写用例的框架

还要写测试框架支持通过编写json、yaml文件编写测试用例,有框架解析文件生成测试用例,然后去执行。

接口测试的思路

接口测试用例设计主要针对输入、处理、输出进行考虑

针对输入进行设计

对于接口来说,输入就是入参,一般的参数类型数值型边界内、边界值、边界外三个方面去考虑特殊值处理不当程序异常、类型边界溢出、错误信息返回不正确字符串主要考虑字符串长度和字符串的内容空、特殊字符、数字、表情符号数组链表多个重复值、空、最大范围值结构体:json、字典字段错误,字段类型错误、未包含字段、缺失字段

针对逻辑设计

限制条件数值类型限制,比如购买次数、登录次数、优惠券最大面额、订单取消次数等状态限制:比如是否登录、是否有订单等关系限制:比如好友关系、关注关系,只能查看好友或者关注人的朋友圈权限限制:比如销售只能查看和自己绑定客户数据,而管理员可有查看所有客户数据时间限制:比如未支付过20分钟订单自动取消状态转换分析比如一个出租车订单,从乘客下单、司机抢单、到达起点、接上乘客、到达目的地,发起支付,支付,评价这是一个完整的订单状态转换流程,必须按照这个次序,才能正确流转,一旦打乱其中任何一个状态,就会出现逻辑问题。接口用例可以这样设计:正常状态迁移:乘客下单,司机抢单,异常状态迁移:乘客刚下的那,司机发起支付,出现异常

针对输出设计

针对输出结果,一般情况下,接口正常处理的结果可能只有一个,但是异常的处理结果,可能会返回多种错误,那就可以针对不同的错误进行设计。接口超时,旧版本接口,废弃接口,接口设计是否合理,比如字段冗余、接口冗余、返回错误信息是否清晰明了、调用是否方便,幂等性

总结

接口测试重要的思路要明确,清晰的理解业务逻辑,至于具体的工具根据自己目前的能力选择,先去做,在做的过程中不断完善不断学习,早日提高自己的测试技能。

码字不易,欢迎大家点赞评论支持。

(1)测试用例参数化使用装饰器 pytestmarkparametrize

(2)参数组合:获取多个参数化参数的所有组合

根据命令行选项将不同的值传给测试函数

(1)conftestpy添加命令选项,命令行传入参数'--cmdfun'(需要建立cmdfun函数后才能调用)

import pytest

# --------添加命令行选项-------------

def pytest_addoption(parser):

    parseraddoption(

        '--cmdopt', action='store', default='type1', help='my option: type1 or type2'

    )

@pytestfixture

def cmdopt(request):

    return requestconfiggetoption('--cmdopt')

(2)创建test_samplepy添加用例

import pytest

def test_answer(cmdopt):

    if cmdopt == 'type1':

        print('first')

    elif cmdopt == 'type2':

        print('second')

    assert 0

if __name__ == '__main__':

    pytestmain(['-s', 'test_samplepy'])

(3)启动

pycharm中直接执行即可

不带参数启动:pytest -s test_samplepy 默认启动第一个

带参数启动:pytest -s test_samplepy --cmdopt=type2 

pytest脚本运行后,有个窗口显示成功失败条数可以在pytestmain()添加参数:--junitxml=xxxxxxml

第二步:进入项目的配置,在jenkins的job任务的构建中,在已有的命令中添加xml的生成路径

第三步:在jenkins的job任务的构建后 *** 作中,添加Publish Junit test result report,配置测试结果xml文件

第四步:保存配置

第五步:再次构建项目,查看邮件结果

pytest默认按字母顺序去执行的(小写英文—>大写英文—>0-9数字)

用例之间的顺序是文件之间按照ASCLL码排序,文件内的用例按照从上往下执行。

setup_module->

setup_class->

setup_function->

testcase->

teardown_function->

teardown_class->

teardown_module

可以通过第三方插件pytest-ordering实现自定义用例执行顺序

pip install pytest-ordering

0>较小的正数>较大的正数>无标记>较小的负数>较大的负数

-方式二:不推荐

以上就是关于pytest导出入参的变量值全部的内容,包括:pytest导出入参的变量值、接口返回数据为数组格式,如何使用python取出想要的某组数据、如何做接口测试等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9721003.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存