Advertisement

java socket 压力测试_JMeter压力测试案例大全 之三【http测试和socket测试】

阅读量:

http请求的压力测试(此篇部分参考百度文库)

(1)添加线程组

(5)选择可视化界面中左边树中的“测试计划”节点,点击“编辑”菜单---> “添 加”--->”线程组”,添加一”线程组”后,“测试计划”节点下多了“线程组” 节点

(2)添加HTTP请求默认值(用来配置公共参数,不是http请求)

通过下面的步骤来设置HTTP请求默认值:

1.选中可视化界面中左边树的“线程组”节点,单击右键,选择“添加”—〉 “配置元件”—〉“HTTP请求默认值”,点击“HTTP请求默认值”后可视 化界面中左边树的“线程组”节点下多了“HTTP请求默认值”节点。

2. 设置“HTTP请求默认值”的主要参数:

服务器名称或IP:被测试服务器的ip地址或者名字。在这里设置为 192.168.10.91

端口号:服务器的端口号,192.168.10.91机器上的Websphere端口号为9080, 在这设置为9080

协议:发送测试请求时使用的协议,CSP接受的是http请求

路径:servlet的路径。因为性能测试用的servlet是CSPReqServletTest ,所 以路径设置为/csp/CSPReqServletTest

设置后的屏幕截图如下:
8ba5f2ec211109d1cc305e9088e145d3.png

(3)添加HTTP请求

设置HTTP请求:

1.选中可视化界面中左边树的“线程组”,单击右键,选择“添加”—〉 “Sample”—〉“HTTP请求”,点击“HTTP请求”后可视化界面中左边树 的“线程组”节点下多了“HTTP请求”节点,如下图:
fcf1cab5208cb28fd1e9e6f6c8768aff.png

2. 设置“HTTP请求”的主要参数:

方法:选择POST

post方式可以进行参数的添加,对服务器端发送参数。

(4)添加监听器

1.选中可视化界面中左边树的“线程组”节点,单击右键,选择“添加”—〉 “监听器”—〉“用表格查看结果”,点击“用表格查看结果”后可视化界面 中左边树的“线程组”节点下多了“用表格查看结果”节点

2. 设置“用表格查看结果”的主要参数:

Configure:点击“Configure”按钮,在弹出的窗口中选中“Save Response Data” 项,以保存响应数据,如下图:
5dc93f1c9314302273e5b2e4d193fb09.png

文件名:在“文件名”处填写文件的地址和名称,以保存相关的数据。在此 填写为“F:\线程组.jmx”如下图:
aa7824a1564050a33af9d72a324a21da.png

(5)点击视图中的“运行”测试即可。

6.socket的压力测试

(1)socket测试需要写一个测试jar包。

首先创建一个工程,导入lib\ext\ApacheJMeter_core.jar,ApacheJMeter_java.jar

然后创建下面的代码:(IP和端口可以根据自己的需要修改)

import org.apache.jmeter.config.Arguments;

import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;

import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;

import org.apache.jmeter.samplers.SampleResult;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.*;

/**

  • @author howsky

*/

public class Test extends AbstractJavaSamplerClient {

// Sock begin----------------------------------------------

private Socket sid;

private PrintWriter out;

private BufferedReader in;

private String ip;

private String port;

// Sock end------------------------------------------------

private static String label = "howsky.net";

// 测试结果

private SampleResult sr;

/**

  • 初始化

*/

public void setupTest(JavaSamplerContext arg0) {

System.out.println("setupTest");

}

/**

  • 设置请求的参数

*/

public Arguments getDefaultParameters() {

Arguments params = new Arguments();

params.addArgument("ip", "127.0.0.1");

params.addArgument("port", "8888");

return params;

}

/**

  • 运行过程

*/

public SampleResult runTest(JavaSamplerContext arg0) {

ip = arg0.getParameter("ip");

port = arg0.getParameter("port");

sr = new SampleResult();

sr.setSampleLabel(label);

try{

sr.sampleStart(); //记录程序执行时间,以及执行结果

//发送数据

String msg = "welcome to howsky.net";

System.out.println("begin");

sendMsg(ip, Integer.parseInt(port), msg);

sr.setSuccessful(true);

System.out.println("end");

}catch(Throwable e){

sr.setSuccessful(false);

}finally{

sr.sampleEnd();

}

return sr;

}

/**

  • 结束

*/

public void teardownTest(JavaSamplerContext arg0) {

}

/**

  • 发送消息

  • @param ip

  • @param port

  • @param msg

  • @throws Exception

*/

private void sendMsg(String ip, int port, String msg) throws Exception{

sid = new Socket(ip, port);

in = new BufferedReader(new InputStreamReader(sid.getInputStream()));

out = new PrintWriter(sid.getOutputStream(), true);

out.println(msg);

in.readLine();

System.out.println("success");

}

}

接着点击项目右键Export->jar file->命名.jar

最后将jar包放到lib\ext\下,启动JMeter。

(2)写socket服务器端代码如下:

public class SocketSer

{

public static void main(String[] args)

{

ServerSocket ss=null;

OutputStream os=null;

try {

ss = new ServerSocket(8888);

while(true){

Socket s=ss.accept();

String ip=s.getInetAddress().getHostName();

os=s.getOutputStream();

os.write("ServerSocket回复请求".getBytes());

os.flush();

s.close();

System.out.println(ip+"---"+new String("_成功完成一次请求"));

}

} catch (IOException e) {

e.printStackTrace();

}finally{

try {

os.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

//a574258039的博客

然后调用该段代码。

(3)JMeter中创建线程组。设置线程数,Ramp-up Period,循环次数。

(4)JMeter中创建Java请求默认值,如图:
81fe8b4f4656266d68e15d2f8765053a.png

然后选择要测试的类:如图
d8f0213ba66327e9476b6cb4a5c5d9da.png

(5)JMeter中创建java请求:
d631977bf5c689a91143a341a65ccf99.png

配置基本和java请求默认值一样。

如图:
9160d17606341390b3652cead4d74bfc.png

(6)创建监听:查看结果树
b162657ee823c213961e90d14e446a84.png

结果如下:
c7990a44782d6f2b78b52ed74b79f77a.png

命令行输出:
214c3df06ae64b138e30fb512104729c.png

全部评论 (0)

还没有任何评论哟~