JMeter压力测试案例大全 之(http测试和socket测试)

目录
1.jmeter安装

2.数据库的压力测试

3. ftp服务器的压力测试

4. sftp的压力测试(缺)

5.http请求的压力测试

6. socket的压力测试

7.邮件服务器测试

7.1基于命令行

7.2基于界面

8.元件介绍

9.1线程组

9.2控制器

9.3监听器

9.4定时器

9.5执行顺序




5.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的路径。因为性能测试用的servletCSPReqServletTest ,所 以路径设置为/csp/CSPReqServletTest
设置后的屏幕截图如下:

JMeter压力测试案例大全 之(http测试和socket测试)_第1张图片

3)添加HTTP请求

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

JMeter压力测试案例大全 之(http测试和socket测试)_第2张图片

2. 设置“HTTP请求”的主要参数:
方法:选择POST

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

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

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

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

JMeter压力测试案例大全 之(http测试和socket测试)_第3张图片

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

JMeter压力测试案例大全 之(http测试和socket测试)_第4张图片

(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请求默认值,如图:

JMeter压力测试案例大全 之(http测试和socket测试)_第5张图片

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

JMeter压力测试案例大全 之(http测试和socket测试)_第6张图片

(5)JMeter创建java请求:

JMeter压力测试案例大全 之(http测试和socket测试)_第7张图片

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

如图:

JMeter压力测试案例大全 之(http测试和socket测试)_第8张图片

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

JMeter压力测试案例大全 之(http测试和socket测试)_第9张图片

结果如下:

JMeter压力测试案例大全 之(http测试和socket测试)_第10张图片

命令行输出:

JMeter压力测试案例大全 之(http测试和socket测试)_第11张图片


你可能感兴趣的:(插件工具)