场景分析:
在企业中, 多数会有很多管理系统如CMS, CRM, 中台等各种管理系统, 这些有一个共同点就是区分用户权限, 如: 阿一是管理员权限, 阿二是部门经理权限, 阿三是普通权限.
这个场景的要点是:
用户名唯一.
不同用户不同权限.
按照一般接口测试原理, 要重复三次分别调用创建用户API实现, 如果还有更多角色, 就这样重复下去? 显然这不是我们接口测试想要的思想.
存在缺点:
维护成本太高, 脚本冗余.
脚本不具备通用型, 扩展性欠佳.
有些人会想到用csv data config, 但csv有局限性, csv里数据需要我们提前准备好, 同时csv文件需要跟着jmeter脚本走, 部署到不同环境就要把csv文件一并处理, 这样做比较烦!
有没有别的办法,不用这么麻烦呢?
分析:
要点一:用户名必须唯一, 用随机数即可做到.
要点二:创建用户同时赋不同权限, 那就把权限对应值用变量定义好, 真正项目里权限应该有张表(多数情况是这样),可以从DB中获取,然后再放到自定义变量中,本实战演示就简化从DB读取的步骤。
步骤一、在线程组中new一个创建用户sampler, 并指定入参
步骤二、在该sampler下添加随机变量
步骤三、添加for Each控制器
步骤四、添加用户自定义变量
定义用户权限, 1是普通用户, 0是管理员, 如果还有其他权限这里添加, 也可以从DB中读取数组对象然后赋值给变量
步骤五: 创建循环控制器
步骤六: 设置好层级结构
步骤七: 把观察结果树加上, 执行
可以看见结果树上分别创建了2个不同名称的用户CS_zhw36926和CSzhw9887, userjobid分别是1 和 0 属于不同角色
再来看响应数据, 返回success为ture ,用户创建成功
数据落库检查
通过以上方法, 一条完整的接口测试链就完成了, 满足了一次创建多个不同用户名称和不同角色, 同时增强了代码的复用性, 扩展性;