新用户注册

新用户注册的接口是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":,
"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

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

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

Jmeter接口测试-新用户注册API的更多相关文章

  1. jenkins+ANT+jmeter 接口测试环境搭建

    目的 jmeter很早就接触了,最近又在接触项目的时候整了一下.写这篇博客主要有两个目的 1,为了给自己搭建jmeter做一个总结. 2,在部署过程中遇到过一些坑,在这分享出来,也希望能给需要的人一个 ...

  2. jmeter接口测试实战-创建用户

    jmeter接口测试实战-创建用户 相信大多数看到标题的同学都会有疑问, 创建用户不是很简单吗, 调用一下创建用户接口, 传入指定入参, 用户即可创建成功, 今天我们的实战来讲讲创建场景.通过接口创建 ...

  3. JMeter 接口测试-if控制器

    JMeter 接口测试-if控制器 ​ 使用场景: 当业务场景是用户登录才能支付操作, 不登录点击支付, 页面会跳转到登录页面. 对于接口也是这样, 一个接口需要执行前, 需要有前提条件, 比如0状态 ...

  4. JMeter接口测试系列:Jmeter+jenkins+ant 的自动化构建

    在JMeter接口测试不断深入的过程中,发现可以和jenkins和ant一起搭配进行自动化的构建.下面是jmeter自动化构建的整理笔记. 准备环境 需要本机上确定安装了jmeter.ant和jenk ...

  5. Jmeter 接口测试实战-有趣的cookie

    Jmeter 接口测试实战-有趣的cookie 场景: 接口测试时常都需要登录,请求方式(post), 登录常用的方法有通过获取token, 获取session, 获取cookie, 等等. 这几种都 ...

  6. 【JMeter】【微信好文收藏】Jmeter接口测试实战-有趣的cookie

    场景: 接口测试时常都需要登录,请求方式(post), 登录常用的方法有通过获取token, 获取session, 获取cookie, 等等. 这几种都有一个共同的特点, 有效期(expires). ...

  7. Jmeter接口测试实战-Cookies

    场景: 接口测试时常都需要登录,请求方式(post), 登录常用的方法有通过获取token, 获取session, 获取cookie, 等等. 这几种都有一个共同的特点, 有效期(expires). ...

  8. Jmeter接口测试与数据驱动

    一. 背景 数据驱动Data Driven Testing(DDT),是一种用于创建自动化测试的方法,或者说是一种架构, 本质是输入数据和用这些数据获取测试结果, 使测试逻辑和测试数据分离. DDT的 ...

  9. 全网最全最细的jmeter接口测试教程以及接口测试流程详解

    一.Jmeter简介 ​ Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试. Jmeter具备高移植性,可以实现跨平台运行. Jmeter可以实 ...

随机推荐

  1. 使用.NET Remoting开发分布式应用——基于租约的生存期

    一.概述 知名类型的SingleCall对象可以在客户程序的方法调用之后被垃圾收集器清理掉,因为它没有保持状态,属于无状态的.而客户激活的类型的对象和知名类型的SingleTon对象都属于生存期长的对 ...

  2. 一周学会HTML----Day02常用标签(上)

    扩展 在开始第二天的课程之前,我们先来拓展两个概念. 第一个是前台和后台:前台是指用户看到的界面,而后台是指相关具有前线的人操作的界面 第二个是前端和后端:前端是值用户看到的界面和界布的操作(安卓.i ...

  3. ubutun

    地址:http://www.cnblogs.com/dutlei/archive/2012/11/20/2778327.html

  4. ansible命令应用示例

                                  ansible命令应用示例                             ping slave组 ansible slave -m ...

  5. SERDES高速系统(一)

    在目前主流厂商的高端FPGA 中都集成了SERDES(串并收发单元)硬核,如Altera的Stratix IV GX器件族内部集成的SERDES单通道支持600Mbit/s到8.5Gbit/s数据熟率 ...

  6. 安卓端后台登录接口单元测试demo

    package com.js.ai.modules.pointwall.interfac; import java.io.IOException; import java.io.Unsupported ...

  7. springboot成神之——spring jdbc的使用

    本文介绍spring jdbc的使用 目录结构 pom配置 properties配置 model层User类 Dao层QueryForListDao config层AppConfiguration 程 ...

  8. delphi IOS发布添加其他资源文件

    添加自己的文件. Project>Deployment>Add File Remote Path android and IOS: assets\internal\ TPath.GetDo ...

  9. Oracle字符集的查看查询和Oracle字符集的设置修改(转)

    最近郁闷的字符集2014年7月31日16:32:58 本文主要讨论以下几个部分:如何查看查询oracle字符集. 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题 ...

  10. PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解

    使用Python进行数据分析,大家都会多少学习一本经典教材<利用Python进行数据分析>,书中作者使用了Ipython的交互环境进行了书中所有代码的案例演示,而书中的Ipython交互环 ...