调用第三方接口 入参是数组_JMeter接口测试实战-创建用户

相信大多数看到标题的同学都会有疑问, 创建用户不是很简单吗, 调用一下创建用户接口, 传入指定入参, 用户即可创建成功, 今天我们的实战来讲讲创建场景.通过接口创建用户前面的想法没有问题, 但在实际项目并不是那么简单的.

场景:

在企业中, 多数会有很多管理系统如CMS, CRM, 中台等各种管理系统, 这些有一个共同点就是区分用户权限, 如: 张三是管理员权限, 李四是部门经理权限, 王五是普通权限.

这个场景的要点是:

用户名唯一.

不同用户不同权限.

按照一般接口测试原理, 要重复三次分别调用创建用户API实现, 如果还有更多角色, 就这样重复下去? 显然这不是我们接口测试想要的思想.

存在缺点:

维护成本太高, 脚本冗余.

脚本不具备通用型, 扩展性欠佳.

有些同学会想到用csv data config, 但csv有局限性, csv里数据需要我们提前准备好, 同时csv文件需要跟着jmeter脚本走, 部署到不同环境就要把csv文件这个小弟带上, 比较烦!

有没有别的办法呢? 继续往下看, 本文主要是拓展思路, 避免使用之前推文已经使用过的玩法, 又能学到新的知识点.

分析:

要点一:用户名必须唯一, 用随机数即可做到.

要点二:创建用户同时赋不同权限, 那就把权限对应值用变量定义好, 真正项目里权限应该有张表(多数情况是这样), 可以从DB中获取,然后再放到自定义变量中,本实战演示就简化从DB读取的步骤,之前推文已经讲述过从DB中获取数组对象再赋值给变量, 这里就不再赘述.

第一步 创建线程组

小技巧: 创建线程组通常有两种方式:

一是在测试计划右键->添加->线程->线程组) 本实例采用方法一.

二是在工具栏上从左往右数第二个模板工具,点击出现弹框Templates, 根据业务需要选择对应的jmeter定义模板, 这种方式更为便捷.

43d2b9a6c105dc91870d0049cc33a059.png

在线程组中new一个创建用户sampler, 并传入指定入参

e7bd48a60c4ebece242d00b14580f07a.png

入参介绍:

userName是用户名, 使用随机数产生 //此处采用变量

userJobId 是控制用户权限 //此处采用变量

第二步 添加随机变量

af78016fca955c99ac78052e2f9afd99.png

这里为什么使用随机变量而不使用随机函数?

同学们看完实例后不妨试试随机函数, 如果你知道答案了欢迎加我私聊, 说明你下功夫认真实践了, 恭喜你学会了本章内容.

  • 输出变量:

变量名称:就是上一步入参json中的userName

输出格式: 因为创建用户的需求是有规则的(在需求PRD中有定义),要求数字和字母混合且长度在8~30之间

  • 配置随机发生器

就不多讲了, 多修改几次里面的值就知道什么作用.

第四步 添加控制器

5183e83dbd6c41991104b8d4a6b7a380.png
  • 输出变量前缀userjobid又是怎么回事呢, 继续往下看
  • 输出变量名称:JobId就是我们在json中用的${JobId}给userJobID赋值使用

第五步 添加用户自定义变量

定义用户权限, 1是普通用户, 0是管理员, 如果还有其他权限这里添加, 也可以从DB中读取数组对象然后赋值给变量, 如何从DB中读取并赋值给[数组]我们往期文章已经分享过, 如不清楚的请关注我往期分享.

5533561311a1388be8a2c171f2b24723.png

输出变量前缀在这里出现了, 给变量赋相应权限值.

第六步 创建循环控制器

6dace1939bcd36cc3701b897d5ad6a9b.png

因为这里userjobid在自定义变量里只有2个值, 设定循环1次

最后再看下层级结构

6a770f4b9fa1c8fd10fda9da6f44e8f1.png

加上结果树,就可以执行了

bc8fde29e0bf32578aa565e3a7707c9b.png
5d3d3c1c270714e966e9a3880cd8a9d0.png

可以看见结果树上分别创建了2个不同名称的用户CS_zhw36926和CS_zhw9887, userjobid分别是1 和 0 属于不同角色

再来看响应数据, 返回success为ture ,代表用户创建成功

66b4aeb644cba66877ea28d7749c840c.png

第六步 数据落库检查

进入mysql的用户信息表

76c91d49bab0acbb5a4a05f39f83d342.png

从插入时间上判断,两条数据几乎同时插入. 实战讲解至此结束.

通过以上方法, 一条接口测试脚本,满足了一次创建多个不同用户名称和不同角色, 增强了代码的复用性, 扩展性; 提高代码免维护性, 同时也避免了csv这种走到哪里都要带着个小弟的麻烦事情.

更多内容请关注微信公众号:测试工程师成长之道

b09195979b88f4a90ee4b292af077611.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值