使用Jmeter做webSocket压力测试和jdbc连接查询测试课题
1.什么是Jmeter
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器,等等。
2.Jmeter的作用
2.1能够对HTTP和FTP服务器进行压力[1] 和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
2.2完全的可移植性和100% 纯java。
2.3完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
2.4完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
2.5精心的GUI设计允许快速操作和更精确的计时。
java做什么的 2.6缓存和离线分析/回放测试结果。
3.Jmeter websocket的压力测试
WebSocket最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种(只握手一次)。而且建立在 TCP 协议之上,服务器端的实现比较容易。与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。数据格式比较轻量,性能开销小,通信高效。可以发送文本,也可以发送二进制数据。没有同源限制,客户端可以与任意服务器通信。
同时JMeter提供纯TCP协议级别Sampler,可以通过它来完成所有基于TCP协议的性能测试。
3.1环境变量配置
系统变量->新建->变量名:JAVA_HOME 变量值:d:\jdk
系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;
3.2 建立测试计划
3.2.1 Thread Group
Thread Group elements 是任何一个测试计划的开始点. 所有的测试计划中的elements都要在一个Thread Group中. 如名字显示那样, thread group element控制了一组线程, JMeter使用这些线程来执行你的测试. 你可以做如下操作来控制thread group:
●设置线程的数量
●设置ramp-up周期
●设置测试执行的次数
每一个线程都会完全和独立的执行测试计划而不影响其他线程. 多线程可以用于模拟到你的服务器程序的并发连接.
首先添加线程组(每个线程就是一个虚拟的用户,所有的其他类型组件必须是(线程组)节点的子节点)
设置线程数(模拟多少用户)
设置循环次数(点永远只能手动停止,设置次数就是完成后自动停止)
设置取样器出现错误后执行动作
可根据自己测试的需要设置维持时间和启动延迟
3.2.2在测试之前需要先编写一个TCP Server服务端,用于jmeter测试websocket用。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.ServerSocket;
import java.Socket;
import urrent.ExecutorService;
import urrent.Executors;
public class Server extends Thread {
private int port = 8888; // 自定义端口号
private ServerSocket serverSocket; // 创建套接字
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论