摘要:重点以上版本参数化都需要借助进行参数化,需严格缩进格式,不能用控制缩进,只能用空格控制直接引用列表进行参数化引用文件进行参数化借助辅助函数进行参数化定义项目的文件框架建立四个文件夹,分别用来存放接口用例用例集测试数据编写接口脚本在文件下,
重点:2.x以上版本参数化都需要借助testsuite进行参数化,yml需严格缩进格式,不能用tab控制缩进,只能用空格控制
1、直接引用列表进行参数化
2、引用csv文件进行参数化
3、借助debugtalk辅助函数进行参数化
建立四个文件夹:api、testcases、testsuites、data,分别用来存放接口、用例、用例集、测试数据
在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
在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
在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"]
在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.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的递归操作技巧,需要的朋友可...
摘要:项目版本微信的支付逻辑与支付宝的支付有一些差别。调用微信支付不同接口需要的参数会有差别。调用客户端的方式查看微信文档扫码支付返回了一个地址。可直接放入微信的完成调用。 payment 项目2.0版本 微信的支付逻辑与支付宝的支付有一些差别。为了让客户端忽略这些差别,统一调用。本sdk做了对应处理。 # SDK调用 微信支付不同接口需要的参数会有差别。请大家在使用接口时,仔细查看文档。...
摘要:面试题增强一个对象的方法的三种方式继承使用这种方式必须满足的条件是被增强的方法的所在类能被继承,并且这个对象已经明确知道。所以创建一个类继承重写了父类的方法增强了,变成飞了。。。 面试题:增强一个对象的方法的三种方式 1. 继承 使用这种方式必须满足的条件是:被增强的方法的所在类能被继承,并且这个对象已经明确知道。 举例: 有一个接口Person,里面有一个方法run() pack...
摘要:它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。状态自管理应用包含以下几个部分,驱动应用的数据源,以声明方式将映射到视图,响应在上的用户输入导致的状态变化。 事情发生在上周(2019-06-06)团队技术分享的时候。起因在于一个问题:vue 中多个组件如何使用同一个变量,我们叫这个变量为 baseConfig 吧。说实话我没想到那么多人不理解...
阅读 1373·2021-11-11 16:54
阅读 9165·2021-11-02 14:44
阅读 2330·2021-10-22 09:53
阅读 3240·2019-08-30 11:18
阅读 1902·2019-08-29 13:29
阅读 1984·2019-08-27 10:58
阅读 1609·2019-08-26 11:38
阅读 3490·2019-08-26 10:31