Jmeter接口测试-新用户注册API

新用户注册

新用户注册的接口是POST /register username/password/password_confirmation

该接口需要提供3个参数,分别是

  • username 用户名
  • password 密码
  • password_confirmation 重复一遍密码

我们现在的任务就是使用jmeter来测试新用户注册这个接口,如果该接口返回了新注册用户的信息,那么我们可以认为注册是成功了的,否则会出现各种报错。

步骤

  1. 在express_api_demo路径下使用npm start启动smile api的后台服务
  2. 在测试计划下新建一HTTP请求默认值

    • 服务器名或IP:localhost
    • 端口号: port
  3. 新建线程组(ctrl+0)

  4. 在线程组下新建Random Variable配置元件

    • 名称: username
    • Variable Name: username
    • Output Format: user_000
    • Minimum Value: 1
    • Maximum Value: 999
  5. 新建HTTP请求取样器

    • 名称: 注册
    • 路径: /register
    • 请求参数:
      • username: ${username}
      • password:  ${username}
      • password_confirmation: ${username}
  1. 在线程组下添加1个查看结果树(ctrl+9)
  2. 在线程组下添加1个Debug Sample(ctrl+8)
  3. 保存并运行,结果如下图所示

 

断言

我们现在已经调通了接口,下面就可以给接口做断言了。

该接口的输入是

  • username
  • password
  • password_confirmation

输出是

  • id: 数据库中的id
  • username
  • password: 密文的
  • updatedAt: 修改时间
  • createdAt: 创建时间
{
  "id":7,
  "username":"user_527",
  "password":"$2a$10$VynjsNb8BwvTsKBRJ68/MObtKYLhtK7TrKxjfWrtufoOOO/yS5qZu",
  "updatedAt":"2016-09-09T09:29:36.000Z",
  "createdAt":"2016-09-09T09:29:36.000Z"
}

很容易想到,我们的断言可以判断下面几件事情

  • 创建成功后返回的json字符串里应该包含username这个key
  • 创建成功后返回的json字符串里username这个key的值应该跟我们随机生成的用户名是一致的

下面我们就开始添加这些断言

在"注册"这个HTTP请求下新建JSON PATH PostProcessor

  • 名称: 获取注册成功后返回的用户名
  • Variable names: returned_username
  • JSON Path expressions: $.username
  • Match Numbers: 1
  • Default Value: NOT FOUND

新建JSR223 Assertion

  • 名称: 用户名不能为空
  • Language: javascript
  • Script:
 var returned_username = vars.get('returned_username');

  if(returned_username == 'NOT FOUND'){
    AssertionResult.setFailure(true);
    AssertionResult.setFailureMessage('没有返回用户名');
  }

新建JSR223 Assertion

  • 名称: 用户名应该是正确的
  • Language: javascript
  • Script:
var returned_username = vars.get('returned_username');
var expected_username = vars.get('username');

if(returned_username != expected_username){
    AssertionResult.setFailure(true);
    AssertionResult.setFailureMessage('返回的用户名不正确');
}

因为断言通过的时候我们是没有办法在查看结果树里看到断言的信息的,所以我们需要故意让断言不通过来测试断言的准确性。

将"注册"HTTP请求中的password参数改为secret

保存并运行,结果如下图所示:

这就证明在注册失败的时候,断言也相应失败了,断言的行为是准确的。

转载于:https://www.cnblogs.com/fighter007/p/8446442.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值