Curl+Postman+Python,自动化构造测试数据

2 篇文章 0 订阅
2 篇文章 0 订阅

背景:

测试的时候经常会遇到一个耗时的问题,那就是准备测试数据,比如某个场景,需要准备100条数据,如果我们提供手动的去创建,耗时不说,而且也没有技术含量,所以给大家安利一个创建测试数据的办法,可以快速、自动化的创建测试数据。

一、前提准备:

1、已安装Python,PyCharm环境已配置,已安装requests库

2、已安装postman

3、电脑中已存在浏览器:Chrome

二、适用场景

适用场景:批量构造多个数据时 ,可以快速上手 , 快速应用 且 自己手敲的代码很少~
适用产品:Web端

三、需求

新建100个订单

四、操作步骤

4.1、进入Chrome浏览器 ->Web产品系统 ->打开F12

4.2、新建一个你要批量构造的数据后,复制API

复制API 步骤:

例如:手动在页面新建订单,名称为:Auto-20210107-新建订单,新建成功后,从F12中 → Network → 选中新建订单API → 右键 → Copy → 选中Copy as CURL (bash)

如图:
在这里插入图片描述

4.3、打开postman,导入刚才复制的API 。

导入步骤:点击左上角的import → Paste Raw Text → 粘贴你刚才复制的内容 → Import ; 如图:
在这里插入图片描述

4.4、在postman中导出Python Requests代码 * 省去自己写代码的环节

导出步骤:点击 Code → 选择:Python → 选择:Python Requests → 点击:Copy to Clipboard(复制到剪贴板)
在这里插入图片描述

4.5、打开PyCharm,新建文件

新建文件步骤:点击项目/文件夹,右键 → New → Python File → 命名文件
在这里插入图片描述

4.6、将复制的Python Requests 复制在 文件中。
这时候可以改下订单名称(因为名称会校验唯一性) ,触发一下 ,看是否可以正常触发,发现报错了,如图:
在这里插入图片描述

完整报错信息为:

UnicodeEncodeError: ‘latin-1’ codec can’t encode characters in position 23-26: Body (‘新建订单’) is not valid Latin-1. Use body.encode(‘utf-8’) if you want to send it encoded in UTF-8.

原因简单来说 就是 json内容中存在中文,所以我们需要自己 转下编码

这里仅需添加一句代码:

payload = payload.encode("utf-8")

加上之后,就可以正常触发了 。

在这里插入图片描述

访问对应的页面:已经创建成功了~
在这里插入图片描述

但是在这里我推荐另外一种方式
大家先可以将上面新增的代码注释掉

# payload = payload.encode("utf-8")
  1. List item

    先在代码最上面导入 json

    import json
    
  2. 再加入一行代码 将 payload 中的请求参数转Json

    payload = json.loads(payload)
    

    在这里插入图片描述

  3. 将这串代码中的:response = requests.request(“POST”, url, data=payload, headers=headers)
    data 改为 json

    response = requests.request("POST", url, json=payload, headers=headers)
    

    再次触发
    在这里插入图片描述
    触发成功~
    再更改一下名称,再触发一下
    访问对应的页面:已经创建成功了~
    ,

7、接下来我们要批量构造数据了 , 这时候要用到 for 循环了~

  1. 添加代码在对应位置,如图:

    for i in range(1,101):
    

    在这里插入图片描述

    range(1,101)解释:表示从1开始,到101为止(不包括101)取其中所有的整数。

  2. 然后将for a in range(1,101): 下的代码全部 增加缩进,鼠标选中 for a in range(1,101): 下的所有代码,点击:Tab键
    在这里插入图片描述
    3.在 代码payload = json.loads(payload)后新增代码:

       payload["name"] = f'Auto-20210107-新建订单-自动触发-{i}'
    

    在这里插入图片描述

    payload[“name”]
    是根据 json中的位置来定的,查看 json 的格式。name处于 json中的第一层。所以通过
    payload[“name”]就可以找到。

    如果要找account对象中的id,则为:
    payload[“account”][“id”]
    若account为数组,找account数组中的id,则为:
    payload[“account”][0][“id”]

    注意这里的 [0]是根据数组中位置来定的。若数组中仅1个对象,则为0,如果数组中有多个对象,这个数要记得按需变动。
    在这里插入图片描述

8、最终执行
在这里插入图片描述
查看页面,已自动化创建100条~
在这里插入图片描述

五、最后

以上就是 Curl+Postman+Python,自动化构造测试数据 的全部细节与步骤,可以很快速的去构造测试数据。建议自己找自己产品中一个简单的"新建"API,按照教程一步一步尝试一下~

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值