吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8857|回复: 16
收起左侧

[Java 转载] JMeter测试案例[加密登录、post请求]

[复制链接]
itboyer 发表于 2019-5-30 09:22

近期项目上做了接口的平台迁移,为了测试迁移前后的性能损耗,以及socket长短连接的响应耗时时长,想测一下相关接口的性能级别
百度了一下相关测试软件,JMeter的文档比较多,使用率比较高,就跟着网上教程现学现卖了一下,做个小记录,方便以后翻阅

下载和安装

  1. 官方网站:http://jmeter.apache.org/ 在这里我下载的是最新版5.0的zip包
  2. 5.0版本依赖JDK8以上的环境,配置JAVA_HOME
  3. 解压后, 运行  “bin/jmeter.bat”如果运行不了,请检查JDK是否正常配置,javaw.exe是否在环境变量中
  4. Jmeter是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language  来选择语言,如果低版本的找不到选择语音的选项,可以看下bin/jmeter.properties 在36行左右有语言配置设置language=zh_CN
    <!-- more -->

测试场景

首先明确要测试的接口场景

  1. 平台下登陆做了随机值+对称公钥加密做MD5的方式进行密码认证,要考虑登陆问题
  2. 接口请求是POST请求,需要设置传参的方式和请求头关于报文的格式
  3. 一个页面有多个接口调用,需要出整体的性能级别报告

操作

创建线程组

首先进入应用界面,新建线程组
右键添加线程组
添加线程组
线程组配置如下,先设置1个线程数,1次循环,调试单个接口能正常调用
添加线程组

相关参数释义:
线程数:虚拟用户数,一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数
Ramp-Up Period(in seconds):设置的虚拟用户数需要多长时间全部启动。如果线程数为10 ,Ramp-Up Period为100,那么就是100秒钟内启动10个线程。每一个线程都会在上一个线程启动10秒钟后才开始运行;设置为0则表示同时启动(注:Ramp-Up Period(in secods)不能设置太小的数值,否则会一开始就给服务器过大的压力;也不能设置太大的数值,否则第一个线程已经执行完了,最后一个还没启动的情况)刚开始Ramp-Up值可以等于总线程数,之后再作调整
循环次数:每个线程发送请求的次数,如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
启动时间:线程运行的起始时间
结束时间:线程运行的结束时间
持续时间:设置了持续时间则启动时间会失效
启动延迟:设置了启动延迟则结束时间会失效
线程数1000循环1次与线程数10循环100次的区别:线程数1000循环1次可以选择并发;线程数10循环100次是类似于长时间施加压力

登陆验证

首先明确javaWeb的项目工程,对于身份的登陆状态一般都是使用获取Session方式来判断是否登陆,使用用户名密码的形式因为密码做了加密,所以我们这里的解决方案为,使用Google浏览器做个登陆,然后在浏览器获取SessionID,使用sessionID模拟已经登陆的状态

  1. 首先登陆,
  2. F12,打开Google浏览器的调试界面,打开network选项卡,随便点击一个按钮,发起接口请求
  3. 打开请求详情,Request Headers就是我们要的内容
    Google调试页
  4. 右键线程组添加HTTP信息请求头管理器
    添加HTTP信息请求头管理器
  5. 将请求头内容相关粘贴到配置中
    upload successful

创建HTTP请求

在线程组内添加HTTP请求
创建HTTP请求
配置HTTP请求参数

注: json格式的报文,必须在消息体数据选项卡内填写报文,不能再参数内填写

配置HTTP请求参数

添加监听器

在整个测试计划中,添加相关结果类的监听器
添加监听器

启动任务,查看相关报告

最终结果

使用5个线程模拟并发,循环5次,对30多个接口进行同步请求:
汇总报告
响应时间图

参考:
https://blog.csdn.net/huashao0602/article/details/72845378
https://www.cnblogs.com/test002/p/8034154.html

免费评分

参与人数 1吾爱币 +1 收起 理由
范你好 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| itboyer 发表于 2019-8-26 09:33
yike911 发表于 2019-8-25 08:29
一般用非gui方式来压测,另外写死session压测对服务器木有用,服务器有缓存的。

学到了,那么不写死session,如何绕过身份鉴权呢?
头像被屏蔽
yike911 发表于 2021-1-21 20:19
天空法则 发表于 2019-5-30 09:50
 楼主| itboyer 发表于 2019-5-30 09:54
天空法则 发表于 2019-5-30 09:50
测试人员,可以共同交流

哈哈,我是开发人员,只不过没事的时候,自己做个小测试能用到
范你好 发表于 2019-5-30 13:39
谢谢楼主,很实用
glk1010282338 发表于 2019-5-30 14:43
谢谢楼主!
断尘缘老佛 发表于 2019-8-25 00:51
哎呦 不错哦
头像被屏蔽
yike911 发表于 2019-8-25 08:29
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
yike911 发表于 2019-8-26 12:27
提示: 作者被禁止或删除 内容自动屏蔽
q791299243 发表于 2019-12-26 14:08
好东西,可以做个小型压测接口
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 16:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表