第一步:获取开发文档,了解接口地址和参数名

第二步:jmeter中添加需要测试的接口

a.设计APP的接口框架:

b.http请求默认值设置如下:

  • c.接口中应需要用到sign字段,加密字符串与时间戳,所以需要自己编写加密的代码。

在eclipse中编写需要加密的代码,调试成功后,在elipse中到处jar包

将导出的jar放到Jmeter安装目录下的lib文件夹下;

因为sign字段是由:时间戳+$+key加密而成,所以我们先需要获取时间戳:

因为所有接口中的sign规则相同,所以将需要的3个字段在测试计划中添加即可

添加完成后,在jmeter中添加beanshell Sampler,导入该jar包,将需要的字符串引用该方法即可,首先定义各个字符串,将字符串拼接后引用加密的方法,加密后的字符存到sign1中,设计如下:

在接口中引用该sign1字段:

d.接口的请求参数值需要从数据库中随机获取,那么设计如下:

添加JDBC Connection Configuration设置

再添加JDBC Request,首先需要将JDBC Connection Configuration中的与jdbc Request中的

设置相同;然后将从数据库中获取需要的参数值,将所有的数据存储到result对象中,

在BeanShell中获取存储id值的对象,并随机读取

在请求参数中引用,sign与times获取方式如上设置一致,id的字段即从数据库中随机获取的值;

调试无问题后,设置查看结果:

监控测试的服务器需要用PMC

在测试服务器中加入

在测试服务器中linux服务器上首先将startAgent.sh设定为可执行文件:

chmod 777 startAgent.sh
./startAgent.sh执行文件
如果要将该文件设置为后台执行不关闭
Nohup ./startAgent.sh &

启动服务后,再进行压力测试。

因为压力测试,需要分布式压力测试:

e.点击“全程启动”进行压力测试,再对结果进行分析:

聚合报告分析

  • Label:httpRequest name属性值。
  • Samples:测试的过程中一共发出了多少个请求即总线程数,(如果模拟10个用户,每个用户迭代10次,这里就显示100),对应图形报表中的样本数目。
  • Average:单个Request的平均响应时间,计算方法是总运行时间除以发送到服务器的总请求数,对应图形报表中的平均值。
  • Median:50%用户的响应时间。
  • 90%Line:90%用户的响应时间。
  • Min:服务器响应的最短时间。
  • Max:服务器响应的最长时间。
  • Error%:本次测试中出错率,请求的数量/请求的总数。
  • Throughput:吞吐量,默认情况下表示每秒完成的请求数。
  • KB/Sec:每秒从服务器接收到的数据量,即每秒钟请求的字节数,时间单位均为ms。

根据聚合报告以及图形结果各项参数指标分析 
(1)每间隔一秒钟并发的线程数越多,接口99%Line参数值先增加后减小,多少个线程时基本达到峰值; 
(2)每间隔一秒钟并发的线程数越多,吞吐量先减后增,每秒钟完成的请求数减幅较大。 
 据图形结果分析 
(1)随着发送到服务器的请求数越来越多,偏离数量越来越大,服务器越来越不稳定; 
(2)发送到服务器的请求数增加,吞吐量(即服务器每分钟处理的服务器的请求)先减少后增加。

一般情况下,当用户能够在2秒以内得到响应时,会感觉系统的响应很快;当用户在2-5秒之间 
得到响应时,会感觉系统的响应速度还可以;当用户在5-10秒以内得到响应时,会感觉系统的 
响应速度很慢,但是还可以接受;而当用户在超过10秒后仍然无法得到响应时,会感觉系统糟 
透了,或者认为系统已经失去响应,而选择离开这个Web站点,或者发起第二次请求。

jmeter APP接口压力测试的更多相关文章

  1. JMeter进入接口压力测试

    关键字: Jmeter.单接口.压力测试.插件监听.服务器端 摘要: 使用Jmeter对单个接口进行压力测试:监听并发量对接口响应时间.服务器资源占量.Jmeter本身只能获取到Tomcat的状态,所 ...

  2. Linxu下JMeter进行接口压力测试

    ****************************************************************************** 本文主要介绍Jmeter脚本如何在Linx ...

  3. 【转】用Jmeter进行接口压力测试的步骤

    1.双击jmeter.bat 2.右键点击测试规划à添加àThreadsà线程组,此时在测试规划下边显露出来线程组选项.点击该选项,显露出来线程组界面.参变量线程数表达若干个烦请,参变量Ramp-Up ...

  4. 学习总结——JMeter做http接口压力测试

    JMeter做http接口压力测试 测前准备 用JMeter做接口的压测非常方便,在压测之前我们需要考虑这几个方面: 场景设定 场景分单场景和混合场景.针对一个接口做压力测试就是单场景,针对一个流程做 ...

  5. 使用Loadrunner进行http接口压力测试

    业务描述: 在业务系统里进行查询操作,查询的结果是通过请求http接口,从系统中处理并将结果以json字符串返回. 本文就讲述使用Loadrunner对此类接口进行压力测试并记录相关的性能指标数据: ...

  6. 使用Jmeter至WebService压力测试

    使用Jmeter至WebService压力测试   目中我们使用了Jmeter对webservice进行了压力測试,Apache JMeter是Apache组织开发的基于Java的压力測试工具.用于对 ...

  7. JMeter接口测试和压力测试

    JMeter接口测试和压力测试 JMeter可以做接口测试和压力测试.其中接口测试的简单操作包括做http脚本(发get/post请求.加cookie.加header.加权限认证.上传文件).做web ...

  8. jmeter简单得压力测试

    Jmeter教程 简单的压力测试 Jmeter是一个非常好用的压力测试工具.  Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 阅读目录 什么是压力测试 ...

  9. Python开发【笔记】:接口压力测试

    接口压力测试脚本 1.单进程多线程模式 # #!/usr/bin/env python # # -*- coding:utf-8 -*- import time import logging impo ...

随机推荐

  1. IDEA中,使用maven-可视化-下载jar包的source和javadoc

    需求:想看jar包的源码和文档注释 操作:在Idea的右侧Maven窗口,选中一个Module,然后展开Dependencies|,选中一个依赖包,按住鼠标右键单击,选择Download Source ...

  2. linux -------------- Linux系统安装jdk

    linux 安装软件有三种方式  tar (解压安装 ) rpm (直接安装) yum(在线) 安装主要步邹 1.下载jdk 软件包 2.检测是否安装 查看已安装jdk软件包 rpm -qa|grep ...

  3. element-ui复杂表单校验

    复杂表单如下: <el-form size="mini" :rules="rules" :model="form" label-wid ...

  4. 【在 Nervos CKB 上做开发】Nervos CKB 脚本编程简介[4]:在 CKB 上实现 WebAssembly

    作者:Xuejie 原文链接:https://xuejie.space/2019_10_09_introduction_to_ckb_script_programming_wasm_on_ckb/ N ...

  5. C#多线程的同步与通信

    C#中使用lock和Monitor控制多线程对资源的使用,最常见的生产者和消费者问题就是多线程同步和通信的经典例子.了解C#多线程的同步与通信. 一.关于lock和Monitor lock可以把一段代 ...

  6. c++打印实心菱形,空心三角形,十字星,空心正方形,实心平行四边形

    今天翻资料的时候,无意间发现了一个文件,是刚接触编程的时候用c++写的一段程序,我称之为"图形打印机",想着把所有图形都打印出来,后来发现其实每种图形的代码都是一个思路,就不想做重 ...

  7. JQuery入门篇

    JQuery入门篇 jQuery选择器 “$”表示JQuery对象 根据ID查找 $(‘#var’)表示将一个id值为var的DOM节点封装成一个jQuery对象,DOM节点必须以“#”开头. 例如: ...

  8. 如何在JIRA中有效使用关注和@提及 我正在关注的问题 提及我的问题 在仪表板上显示

    如何在JIRA中有效使用关注和@提及http://bbs.51testing.com/forum.php?mod=viewthread&tid=1157043&fromuid=1530 ...

  9. ASP.NET SignalR 系列(七)之服务端触发推送

    前面几章讲的都是从客户端触发信息推送的,但在实际项目中,很多信息可能是由系统服务端推送的,下面2图分别展示两种通道 客户端触发推送 服务端推送 下面我们就重点介绍下服务端如何调用集线器的对象进行推送 ...

  10. Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用

    Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...