Mac下jmeter调用http和hessian 测试简介

  1. 下载地址http://jmeter.apache.org/download_jmeter.cgi
    image.png
  1. 解压,进入bin,输入
    sh jmeter.sh

即可启动


image.png

3.下面使用http请求简单测试:

  • 添加线程组

  • 配置线程组


    image.png
  • 创建http请求


    image.png
  • 配置返回断言


    image.png
  • 配置汇总树


    image.png
  • 运行

image.png
  • 看下吞吐量图,明现相应时长越来越长:
image.png

吞吐量常用简易公式:QPS(TPS)= 并发数/平均响应时间

4.使用hessian调用简单测试:

  • 建一个hessian 客户端jar


    image.png

    添加核心调用客户端:

package com.example.demojpa.hessian;

import com.alibaba.fastjson.JSON;
import com.caucho.hessian.client.HessianProxyFactory;
import com.yeepay.power.common.enums.order.OrderSourceTypeEnums;
import com.yeepay.power.dto.order.CreateOrderTokenRequestDTO;
import com.yeepay.power.dto.order.CreateOrderTokenResponseDTO;
import com.yeepay.power.dto.order.PayRequestDTO;
import com.yeepay.power.dto.order.PayResponseDTO;
import com.yeepay.power.facade.order.PayFacade;
import java.math.BigDecimal;
import java.net.MalformedURLException;

/**
 * @Description:
 * @Author: kai.yang
 * @Date: 2019-04-24 05:48
 */
public class HessianClient {

    static String local = "http://127.0.0.1:8080";


    private static PayFacade demoFacade;

    static {
        HessianProxyFactory factory = new HessianProxyFactory();
        try {
            demoFacade = (PayFacade) factory.create(PayFacade.class, local + "/power-hessian/hessian/PayFacade");
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
    }


    public static String testPay() {
        if(demoFacade==null){
            throw new RuntimeException("未初始化");
        }
        CreateOrderTokenRequestDTO requestDTO = new CreateOrderTokenRequestDTO();
        requestDTO.setOrderSourceTypeEnums(OrderSourceTypeEnums.PC);
        CreateOrderTokenResponseDTO orderToken = demoFacade.createOrderToken(requestDTO);

        PayRequestDTO dto = new PayRequestDTO();
        dto.setMerchantNo("10040067508");
        dto.setAmount(new BigDecimal("0.01"));
        dto.setUserId("lksdflsdfsdfsdfsdfsf");
        dto.setTernimalNo("T00002");
        dto.setRequestNo(orderToken.getToken());
        dto.setRemark("测试");
        dto.setSupplyStationNo("SS67852010");
        dto.setUserId("17611251251");
        dto.setOrderSourceType(OrderSourceTypeEnums.PC.name());
        System.out.println(JSON.toJSONString(dto));
        PayResponseDTO pay = demoFacade.pay(dto);
        return JSON.toJSONString(pay);
    }

    public static void main(String[] args) {
        HessianClient client=new HessianClient();
        String s = client.testPay();
        System.out.println(s);
    }


}

  • pom中添加assembly配置,将依赖一起打包到jar中,
  <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <descriptors>
                        <descriptor>src/main/assembly/src.xml</descriptor>
                    </descriptors>
                </configuration>
            </plugin>
        </plugins>
    </build>

添加src/main/assembly/src.xml文件

<assembly
    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
    <id>jar-with-dependencies</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <useProjectArtifact>true</useProjectArtifact>
            <outputDirectory>/</outputDirectory>
            <!--解压文件,以class形式打到包中,此处用这个-->
            <unpack>true</unpack>
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <directory>${project.build.outputDirectory}</directory>
            <outputDirectory>/</outputDirectory>
        </fileSet>
    </fileSets>
</assembly>
  • maven打包


    image.png

生成带所有依赖的包

image.png
  • 将jar包放到jmeter安装目录的lib/ext下


    image.png
  • 配置jmeter

  1. 添加线程组(同上)
  2. 添加汇总报告,和结果树(同上)
  3. 添加BeanShell取样器


    image.png

    配置取样器


    image.png

脚本:

import com.example.demojpa.hessian.*;
String r=HessianClient.testPay();

记住HessianClient的testPay方法必须为public static的.
运行线程组:


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需...
    燕京博士阅读 4,304评论 0 16
  • 公司最近需要测试后台性能,所以学习使用了Jmeter,在此做记录,也分享给更多需要的人。 这篇文章是 JMeter...
    顾顾314阅读 4,517评论 0 10
  • 主要文体来自 CDNS:https://www.cnblogs.com/ceshisanren/p/5639895...
    Amano阅读 11,311评论 3 27
  • 到Apache JMeter官网下载最新版本的JMeter Source压缩包,解压到指定目录下即可。之后进入bi...
    何小有阅读 1,541评论 0 1
  • 冬雪如泣 我卧在寒冬里躺在白雪上 这被风拂过的花甚是凄迷 风儿停止了啜泣 一股脑儿的钻进火炉里栖息 日子一天一天过...
    月下心语x阅读 397评论 2 10

友情链接更多精彩内容