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

发表于:2018-3-08 11:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Fighter.Lu    来源:博客园

  新用户注册
  新用户注册的接口是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
  保存并运行,结果如下图所示:
  这就证明在注册失败的时候,断言也相应失败了,断言的行为是准确的。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号