引言

最近开发 java 后端项目,对外提供Restful API接口,完整功能开发现已完成。
目前通过单测(68%行覆盖率)已保证业务逻辑正确性,同时也尝试使用JMeter进行压力测试以保证并发性能,现做一些梳理与总结

构建Http接口测试步骤

1、创建一个线程组A
 
2、在线程组A中创建一个Sampler/Http请求
 
3、选择新建的http请求,设置服务地址、端口、请求uri、请求参数等
 
4、线程组配置
如希望测试上述接口并发调用性能,考虑创建100个线程,每个线程调用接口10次,则对线程组做如下配置
 
5、此时点击工具栏中的“启动”,即可实际发送http请求
一般情况我们需要对验证返回结果,因此增加
“响应断言”:验证返回数据是否符合预期
“查看结果树”:展示API请求结果及响应断言验证结果
“用表格查看结果” :表格形式呈现API请求耗时、状态码、数据大小等(可批量调用接口查看平均耗时)
(这几项元素可以直接放在测试计划中,若针对接口调用需要在“响应断言”中做特殊值验证,则应将该响应断言置于线程组中)
 
6、添加“响应断言”,验证返回的json数据中包含xxx
 
 
7、添加“查看结果树”,查看API调用是否成功
 
8、添加“用表格查看结果”,查看API请求耗时
 
 
工具栏“清理”清除结果
 
9、现已完成一个测试用例
当有多个线程组后(对应多个压测用例),可以使用ctrl+t快速切换线程组状态(禁用/启用),每次执行测试时可以仅开启一个测试用例
 
 

实际操作需注意的细节列举如下

1、服务接口仅接受json格式数据,需要设定header信息
在线程组中添加Http信息头管理器
添加Content-Type参数,值为application/json,如下
 
2、构建随机值参数
某接口接受的一个请求参数,不允许重复
添加随机变量
 
订单id,使用随机数
 
编辑HTTP请求,Body Data中描述的json数据中引用随机变量
 

初次使用总结

1、可以线程组为粒度定制测试用例
2、构建并发请求极其方便,可以表格形式直观查看请求耗时
3、测试计划为xml格式文本,可入版本库进行维护
 
其他功能等待以后有机会再来发掘~~
 
其他Jmeter相关资料
Jmeter基础之---jmeter基础概念 

[原创]JMeter初次使用总结的更多相关文章

  1. [原创]Jmeter工具学习思维导图

    [原创]Jmeter工具学习思维导图

  2. 【JMeter连接SQLServer】採用window鉴权方式连接(原创)

    大家都知道Jmeter能够连接各种数据库.这方面我也不多说了,假设你还不知道怎么连接的话.能够參看我看的另外一篇博文.这边有具体的介绍 http://blog.csdn.net/lzqinfen/ar ...

  3. 【原创】JMeter学习(三十七)Jmeter录制手机app脚本

    环境准备: 1.手机 2.wifi 3.Jmeter   具体步骤: 1.启动Jmeter: 2.“测试计划”中添加“线程组”: 3.“工作台”中添加“HTTP代理服务器”: 4.配置代理服务器:Gl ...

  4. 【Fine原创】JMeter分布式测试中踩过的那些坑

    最近因为项目需要,研究了性能测试的相关内容,并且最终选用了jmeter这一轻量级开源工具.因为一直使用jmeter的GUI模式进行脚本设计,到测试执行阶段工具本身对资源的过量消耗给性能测试带来了瓶颈, ...

  5. 【原创】相对完整的一套以Jmeter作为工具的性能测试教程(接口性能测试,数据库性能测试以及服务器端性能监测)

    准备工作 jmeter3.1,为什么是3.1,因为它是要配合使用的serveragent所支持的最高版本,下载链接 https://pan.baidu.com/s/1dWu5Ym JMeterPlug ...

  6. WEB接口测试之Jmeter接口测试自动化 (一)(初次接触)

    软件测试自动化从不同的测试阶段分类,可从下层到上层依次分为单元测试-->接口测试-->界面自动化测试. 单元测试一般有开发人员自行完成,而界面自动化测试合适的测试条件又很难达到,测试人员在 ...

  7. 【柠檬班】史上最简单的Jmeter跨线程组取参数值的两种办法(不写代码)【原创】

    如果你工作中已经在用jmeter做接口测试,或性能测试了,你可能会遇到一个麻烦,哪就是jmeter的变量值不能跨线程组传递.   看,官方就已经给出了解释.这个不是jmeter的缺陷,这是jmeter ...

  8. 【原创】基于RBI的性能测试理念,通过jmeter快速定位接口最大并发用户数

    测试工具:jmeter v_5.2 测试对象:某网站的物料获取接口,需登录后操作 测试目的:快速定位该接口最大并发用户数 思路&步骤: 1.模拟一个场景,某天临近下班,主管突然过来让你测下你们 ...

  9. 【黑金ZYNQ7000系列原创视频教程】05.FPGA和ARM的初次结合——LED实验

    黑金论坛地址: http://www.heijin.org/forum.php?mod=viewthread&tid=36639&extra=page%3D1 爱奇艺地址: http: ...

随机推荐

  1. 漂亮的Html5网站

    http://www.mrdoob.com/projects/chromeexperiments/ball-pool/

  2. 【专题】区间dp

    1.[nyoj737]石子合并 传送门:点击打开链接 描述    有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这 ...

  3. 201621123003《Java程序设计》第一周学习总结

    #1. 本周学习总结 本周主要学习了Java的jdk.jvm.jre等基本概念,Java的发展史,知道Java语言的跨平台.面向对象等主要特点,简单了解了Java程序的编译和运行过程.对于学习Java ...

  4. PostgreSQL full_page_write记录

    PostgreSQL 在 checkpoint 之后在对数据页面的第一次写的时候会将整个数据页面写到 xlog 里面. 当出现主机断电或者OS崩溃时,redo操作时通过checksum发现“部分写”的 ...

  5. 一些初学shell自己写的一些练习题脚本

    1斐波拉契数列前10个  #!/binbash#declare A=0declare B=1for ((i=1;i<6;i++)); do    let A+=B    printf " ...

  6. 嵌入式中 ARM的几种工作模式 以及异常模式的优先级

    一.Arm工作模式: Arm微处理器支持7种工作模式,分别为: 1. 用户模式(Usr)            用于正常执行程序 2. 快速中断模式(FIQ)    用于高速数据传输 3. 外部中断模 ...

  7. c++指针初探

    业余时间准备重温一下c++,因为在阅读Android源码到native层的时候感觉有点吃力,只是在大学时候很不用心的学过c++,所以重温下以便打好一些编程基础知识,本篇就很简单的对c++的指针做初步的 ...

  8. CentOS给网站配置Https证书

    1.在腾讯云申请域名的证书 2.配置文件 安装相应模块: yum install mod_ssl openssl 编辑配置文件: cd /etc/httpd/conf.d vi jerryqi.con ...

  9. C++11中提供了std::bind

    再来看看std::bind C++11中提供了std::bind.bind()函数的意义就像它的函数名一样,是用来绑定函数调用的某些参数的. bind的思想实际上是一种延迟计算的思想,将可调用对象保存 ...

  10. 特例模式(Special Case Pattern)与空对象模式(Null Pointer Pattern)—— 返回特例对象而非 null

    返回 null 值,基本上是在给自己增加工作量,也是给调用者添乱.只有一处没有检查返回的是否为 null,程序就会抛 NullPointerException 异常. 如果你打算在方法中返回 null ...