之前的篇幅介绍了soapUI测试接口, 因为功能丰富, 操作简单, 可以参数化而深受测试小伙伴的喜欢, 今天再给大家介绍一款利器, Jmeter是Apache组织下的免费工具, 我使用的是Mac 系统 , Jmeter3.1版本.

自定义变量的意义:

  1. 一处修改处处修改, 多处地方调用相同变量, 只要修改一个地方
  2. 我们的测试脚本应该不是只能在一套环境上执行的, 通常公司有多套环境, 比如测试环境, 预发布发环境, 生产环境等, 自定义可以很快的在多套环境之间切换,提高脚本重复使用率.

JMeter有一个好处是下载解压后无需安装直接运行, 在bin目录下jmeter双击即可启动. 进入了熟悉的界面的

我们继续往下介绍 :

  1. 启动后左侧界面只显示测试计划, 右键测试计划, 添加->Threads users->线程组
  2. 右键线程组->Sampler->HTTP请求

http请求页面

被测接口是https, 端口号是443, 接口使用post 方法,  如果直接添加参数执行,是无法调通接口的, 那应该怎么办呢?

添加HTTP Cookie管理器或者HTTP信息头管理器,我使用的是后者HTTP信息头管理器, 方法非常简单, 右键线程组->添加->配置元件->HTTP信息头管理器

在HTTP信息头管理中添加cookie

自定义变量

再回到http请求页面, 我们这里定义了host和id为变量, 那么host在哪里设置呢? 继续往下看, 右键线程组->添加->添加元件->用户自定义变量

id我这里举例了一个随机函数, 添加方法是在jmeter菜单中选择选项->函数助手对话框

  1. 选择RandString
  2. Random String Length 是随机数的长度, 我是4位
  3. Chars to use for random string generation 随机数在那些数字或者字符里产生
  4. 点击生成, ${__RandomString(4,0123456789,)} 就会得到这样一个函数, copy到id自定义变量中

以上这些准备工作做好了, 是否可以跑起来了呢? 答案是肯定的,那我们怎么看到运行结果呢? 没地方看吧, 因此还要添加一些查看结果的地方, Jmeter称之为监听器 , 还是老规矩, 右键线程组->添加->查看结果树,监听可以根据自己实际情况添加各种类型. 添加完成之后执行了,见证奇迹的时刻到了, 有点小激动, 点击工具上的绿色执行按钮,看到请求里id是随机生成的一个四位数字

参数化

还是老套路, 右键线程组->添加->配置元件->CSV Data Set Config

  1. 填写参数化文件的地址,本地的文件地址
  2. 读取参数文件编码格式: UTF-8
  3. 定义变量名称,多个变量用逗号隔开
  4. 分隔参数文件的分隔符,默认是逗号

在id.txt文件中可以输入预先设定的id号,然后执行就调用csv中的变量

线程数

在线程组页面的线程属性设置线程数

Ramp-up Period(in seconds) 持续时间

循环次数 循环跑几次

欢迎各位留言讨论互相学习.

如果文章对你有帮助请 关注我的公众号并分享转发, 让更多的小伙伴一起成长.

-END-

-请关注-

推荐阅读

JMeter数据库操作

Jmeter接口测试-正则表达式

JMeter中文返回乱码

Jmeter接口测试-参数化

JMeter接口测试-基础

测试-感想

JMeter 接口测试(一)的更多相关文章

  1. http接口测试——Jmeter接口测试实例讲解

    摘要: 最近做的项目需要测试很多接口,上网查一查,发现完整讲述接口测试的资料太少,所以最近自己做完这个项目,把测试的东西整理一下和大家分享一下,希望对看到的人有所帮助     一.测试需求描述 1. ...

  2. jmeter接口测试教程

    一.Jmeter接口测试步骤: 1.添加线程组

  3. 通过Jenkins跑Jmeter接口测试脚本,我想当有接口跑失败时Jenkins发送邮件通知,这个如何弄呢

    通过Jenkins跑Jmeter接口测试脚本,我想当有接口跑失败时Jenkins发送邮件通知,这个如何弄呢

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

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

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

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

  6. Jmeter接口测试-断言

    JMeter接口测试-断言  对应qq群号:616961231 一个http请求发出,怎么判断执行的是否正确呢? 通过检查服务器响应数据,是否符合预期的数据, 如果是,任务成功,  如果否, 任务失败 ...

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

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

  8. JMeter接口测试实战-动态数据验证

    JMeter接口测试实战-动态数据验证 说到验证就不得不说断言, 先来看下JMeter官方给出断言(Assertion)的定义, 用于检查测试中得到的响应数据等是否符合预期,用以保证测试过程中的数据交 ...

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

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

  10. Jmeter接口测试实战-数据传递

    Jmeter接口测试实战-数据传递 接口与接口之间没有关联的测试是缺乏意义和没有灵魂的,只有数据在不同接口之间传递才能勾画出业务场景重要的链路. 我们用较为通用的http/https协议,接口普遍返回 ...

随机推荐

  1. Build Assimp library for Android

    Build Assimp library for Android 首先各路教程中有推荐使用 NDK 或者 STANDALONE TOOLCHAIN 编译的,根据我的理解,这两种方式都是可以的,如果能直 ...

  2. 优化之Sequence Generator组件

    优化Sequence Generator组件,需创建一个可重用的序列生成器,并同时在多个Mappings中使用它 关于Number of Cached Values Sequence Generato ...

  3. JavaScript02-js使用

    JS的用法有两种: 第一种是在html页面通过引入外部js文件,第二种是直接将js代码写在html中.小例如下: 第一种 <script type="text/javascript&q ...

  4. 死磕NodeJs之REPL与For Server,我的艰辛的旅程(一)

    ode.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接 ...

  5. 初探Java设计模式4:JDK中的设计模式

    JDK中设计模式 本文主要是归纳了JDK中所包含的设计模式,包括作用和其设计类图.首先来个总结,具体的某个模式可以一个一个慢慢写,希望能对研究JDK和设计模式有所帮助.一.设计模式是什么(1)反复出现 ...

  6. Unity实现c#热更新方案探究(二)

    转载请标明出处:http://www.cnblogs.com/zblade/ 一.IOS对DLL热更新的禁止 紧接上文,继续对C#热更新的研究.上文中,已经说了如何基于appDomain来实现对DLL ...

  7. JdbcTemplate的一次爬坑记录

    时隔三个多月,我终于想起我还有个博客,其实也不是忘了我这个博客,只是平时工作繁忙没时间去写博客,故今晚腾出时间来记录一下上次工作中遇到的一个问题,给园友们分享出来,以免入坑. 上个星期在工作中使用Jd ...

  8. IDEA搭建Spring Boot项目

    所需工具 新建项目 创建一个login控制器 写入两个注释 import导入项会自动添加@RestController@RequestMapping(value = "/login" ...

  9. web前端安全

    之前对web前端安全进行了总结,想给大家分享一下,有不对的地方,大家多多交流,由于写在了PPT上,只好给大家一张一张粘上来,希望大家不要在意,了解知识为主

  10. JavaScript 中,定义函数时用 var foo = function () {} 和 function foo() {}有什么区别?

    对于新手来说(本人也是新手-_-!),好像var foo = function () {} 和 function foo(){}并没有什么区别,意识里可能就认为就是两种不同的写法而已.但是,通过网上查 ...