资讯专栏INFORMATION COLUMN

httprunner2.5.7参数化三种方式

Jokcy / 1437人阅读

摘要:重点以上版本参数化都需要借助进行参数化,需严格缩进格式,不能用控制缩进,只能用空格控制直接引用列表进行参数化引用文件进行参数化借助辅助函数进行参数化定义项目的文件框架建立四个文件夹,分别用来存放接口用例用例集测试数据编写接口脚本在文件下,

重点:2.x以上版本参数化都需要借助testsuite进行参数化,yml需严格缩进格式,不能用tab控制缩进,只能用空格控制

1、直接引用列表进行参数化

2、引用csv文件进行参数化

3、借助debugtalk辅助函数进行参数化

定义项目的文件框架

建立四个文件夹:api、testcases、testsuites、data,分别用来存放接口、用例、用例集、测试数据

1、编写接口yml脚本

在api文件下,新建一个yml文件,文件名为login.yml

脚本必须包含:name--接口名、request---请求、validate--断言

补充:

request:

headers:

传参:(post请求:content-type为json时-----json,content-type为form时----可用params/data)

(get请求:用params)

method: POST/GET

url:xxxx/xxxx/xx

login.yml 脚本入下:

name: login_apibase_url: http://xxxxx.xxx.comrequest:    headers:        Content-Type: "application/json;charset=UTF-8"        User-Agent:          "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30          (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 Edg/92.0.4515.159" # post: content-type为json时-----json,content-type为form时----可用params、data # get: 用params       json:        account: $account        password: $password    method: POST    url: /nbugs-auth-center-test/xyhauth/checkPwdvalidate:-   eq:    - status_code    - 200-   eq:    - body.code    - 200

2、引用接口,编写测试场景脚本

在testcases文件下,新建一个yml文件,文件名为test_case_login.yml

ps:可能是我的项目创建问题,引用api需要使用绝对路径,正常情况用api/login_test.yml就OK了

- config:    name: login- test:    name: login_case    api: "test_httprunner/api/login_test.yml"    validate:    -   eq:          - status_code          - 200    -   eq:          - body.code          - 200

3、测试用例集,加载用例

方式一:直接引用列表进行参数化

在testsuites文件下,新建一个yml文件,文件名为test_suite_login.yml

引用testcase

引用列表参数

config:    name: testcase descriptiontestcases:    nametest type suites:        testcase: test_httprunner/testcases/test_case_login.yml        parameters:            account-password:                - ["1782683xxxx", "69f600a1be1d7aa6318ea5b274c09ae6"]                - ["user2", "222222"]                - ["1782683xxxx", "333333"]

方式二:引用csv文件进行参数化

在data文件夹里面创建一个csv文件,文件名test_data_login

account,password1782683xxxx,69f600a1be1d7aa6318ea5b274c09ae6user2,2222221782683xxxx,333333

在testsuites文件下,新建一个yml文件,文件名为test_suite_login.yml

引用testcase

引用参数:${P(路径)}

config:    name: testcase descriptiontestcases:    nametest type suites:        testcase: test_httprunner/testcases/test_case_login.yml        parameters:            account-password: ${P(test_httprunner/data/test_data_login)}

方式三:使用辅助函数debugtalk参数化

创建一个debugtalk.py文件

定义一个方法,放参数----嵌套字典的列表

def get_user_login():    user_info = [        {"account": "1782683xxxx", "password": "69f600a1be1d7aa6318ea5b274c09ae6"},        {"account": "1111", "password": "69f600a1be1d7aa6318ea5b274c09ae6"},        {"account": "1782683xxxx", "password": "123752324"}    ]    return user_info

在testsuites文件下,新建一个yml文件,文件名为test_suite_login.yml

引用testcase

引用参数:${方法}

config:    name: testcase descriptiontestcases:    nametest type suites:        testcase: testcases/test_case_login.yml        parameters:            account-password: ${get_user_login()}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/122993.html

相关文章

  • (转载)php实现递归的三种基本方式

    摘要:递归函数是我们常用到的一类函数,最基本的特点是函数自身调用自身,但必须在调用自身前有条件判断,否则无限无限调用下去。实现递归函数可以采取什么方式呢本文列出了三种基本方式。因而将应用到递归函数作用可想而知。 这篇文章主要介绍了php实现递归的三种基本方法,包括利用引用做参数,利用全局变量,利用静态变量来实现递归,并附上了相关示例,最后给大家一个演示,涉及php的递归操作技巧,需要的朋友可...

    CloudwiseAPM 评论0 收藏0
  • 微信的三种支付方式接入:APP支付、公众号支付、扫码支付

    摘要:项目版本微信的支付逻辑与支付宝的支付有一些差别。调用微信支付不同接口需要的参数会有差别。调用客户端的方式查看微信文档扫码支付返回了一个地址。可直接放入微信的完成调用。 payment 项目2.0版本 微信的支付逻辑与支付宝的支付有一些差别。为了让客户端忽略这些差别,统一调用。本sdk做了对应处理。 # SDK调用 微信支付不同接口需要的参数会有差别。请大家在使用接口时,仔细查看文档。...

    rollback 评论0 收藏0
  • 面试题:增强一个对象的方法的三种方式

    摘要:面试题增强一个对象的方法的三种方式继承使用这种方式必须满足的条件是被增强的方法的所在类能被继承,并且这个对象已经明确知道。所以创建一个类继承重写了父类的方法增强了,变成飞了。。。 面试题:增强一个对象的方法的三种方式 1. 继承 使用这种方式必须满足的条件是:被增强的方法的所在类能被继承,并且这个对象已经明确知道。 举例: 有一个接口Person,里面有一个方法run() pack...

    233jl 评论0 收藏0
  • 前端答疑-对象引用-vue共享数据源的三种方式

    摘要:它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。状态自管理应用包含以下几个部分,驱动应用的数据源,以声明方式将映射到视图,响应在上的用户输入导致的状态变化。 事情发生在上周(2019-06-06)团队技术分享的时候。起因在于一个问题:vue 中多个组件如何使用同一个变量,我们叫这个变量为 baseConfig 吧。说实话我没想到那么多人不理解...

    JerryC 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<