上次我们将dubbo接口与jmeter集成起来,但是jmeter是由java实现的,本身有很多限制,无法实现高并发,我们需要借助分布式来实现大压力测试。

在上次的例子中,我们只是实现了简单的dubbo接口测试,下面我们来实现参数化,我们先创建一个txt,并在里面添加入参及出餐:

添加csv config

修改我们写死的beanshell脚本

在修改脚本之后我们来添加一个beanshell断言

在jmeter里单机运行一下

接下来我们来实现jmeter分布式运行,在实现分布式的时候,我们需要区分两个概念,控制端(Controller)和远程执行端(server_slave)。很简单,控制端用来控制脚本执行,而实际的执行由远程执行端来运行。

在配置客户端与远程执行端之前,我们需要在每个安装jmeter的机器上配置jdk环境变量与jmeter环境变量。

Jdk环境变量:

右键计算机属性---》高级系统设置---》环境变量---》

变量名:JAVA_HOME

变量值:C:Program FilesJavajdk1.8.0_91 (即jdk安装的位置)

变量名:Path (这个变量名已在系统变量中存在,现只需在这个值的后面添加以下变量值就可以了)

变量值:;%JAVA_HOME%in;%JAVA_HOME%jrein;

变量名:CLASSPATH

变量值:.;%JAVA_HOME%lib;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;(记住前面的.)

打开cmd,输入java -version 回车,如果输出版本信息则安装成功,提示不是内部或外部命令则表示没有安装成功,可留言或自行百度解决。

Jmeter 安装

由于此软件是绿色版本,所以可解压在任意位置使用,解压后打开Jmeter目录.

右键计算机属性---》高级系统设置---》环境变量---》

变量名:JMETER_HOME

变量值:C:Program Filesapache-jmeter-3.2

变量名:Path (在后面添加以下变量值)

变量值:;%JMETER_HOME%in;

变量名:CLASSPATH

变量值:

%JMETER_HOME%libextApacheJMeter_core.jar;%JMETER_HOME%libjorphan.jar;

同样的,在cmd里运行jmeter,如果出现以下画面,就证明配置正确。

配置server_slave,在server slave上的jmeter/bin下面打开jmeter.properties

可以通过修改server port 为server slave修改监听端口

配置controller,打开controller上的jmeter/bin文件夹下的jmeter.properties

配置好之后,我们先启动server slave

在启动server slave的时候有时候会发现以下报错

在这里我们有两种解决方式

1, 在所有jmeter上进行设置,打开jmeter.properties,修改server.rmi.ssl.disable=true并打开配置

2,在各个jmeter端实现加密,双击运行jmeter/bin 下的create-rmi-keystore.bat

在启动之后,会询问很多问题,问什么回答什么就行

最后一步输入Y生成秘钥,将成功生成的秘钥rmi_keystore.jks 复制到每台jmeter上

通过以上两种方式,可以正常启动server slave与controller。

启动server slave

启动controller 端,并打开之前编写的测试dubbo的脚本。

点击在远端运行

这样,我们的jmeter分布式测试dubbo接口就实现了(过程中牵扯到所有代码以及文件都可以在GitHub上下载到https://github.com/chrisblue0605/dubboSample),希望能帮助到大家。

作  者:Testfan Chris

出  处:微信公众号:自动化软件测试平台

版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

Jmeter分布式测试dubbo接口2的更多相关文章

  1. Jmeter分布式测试dubbo接口1

    最近工作中接到一个需求,需要对一个Dubbo接口进行压力测试,测试其性能,之前一直使用jmeter做压力测试,在踏了好多坑之后,决定把这些记录下来,顺便也希望能帮助到大家. 开始测试之前,我们需要先知 ...

  2. jmeter测试dubbo接口

    本文讲解jmeter测试dubbo接口的实现方式,文章以一个dubbo的接口为例子进行讲解,该dubbo接口实现的功能为: 一:首先我们看服务端代码 代码架构为: 1:新建一个maven工程,pom文 ...

  3. 『动善时』JMeter基础 — 52、使用JMeter测试Dubbo接口

    目录 1.Dubbo介绍 2.准备测试Dubbo接口的环境 3.Dubbo Sample界面详解 4.Dubbo Sample组件的使用 (1)测试计划内包含的元件 (2)使用zookeeper协议请 ...

  4. JMeter测试dubbo接口总结

    Jmeter 测试dubbo 接口 1. 安装JMeter 安装到/usr/local下 2. github上下载 jmeter-plugins-dubbo-x.x.x-jar-with-depend ...

  5. jmeter5.1测试dubbo接口

    dubbo接口功能介绍 客户端输入uncleyong(当然,也可以是其他字符串),服务端返回hello uncleyong 开发dubbo服务jmeter客户端 idea中创建模块dubbo_jmet ...

  6. Jmeter分布式测试实战

    一.Jmeter分布式测试基础 1.Jmeter分布式测试原因: 在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对负载机的CPU和内存消耗比较大.所以当需要模拟数以万计的并 ...

  7. Jmeter分布式测试笔记

    在性能测试过程中,如果要求并发数较大时(例如1000+),单机配置cpu与内存等无法支持,则需要使用Jmeter的分布式测试方法. 一.一般什么情况下需要分布式 1.前辈经验:比如机器i5双核的cpu ...

  8. 【Fine原创】JMeter分布式测试中踩过的那些坑

    最近因为项目需要,研究了性能测试的相关内容,并且最终选用了jmeter这一轻量级开源工具.因为一直使用jmeter的GUI模式进行脚本设计,到测试执行阶段工具本身对资源的过量消耗给性能测试带来了瓶颈, ...

  9. jmeter分布式测试教程和远程的代理机无法连接网络的问题解决方法

    一.Jmeter分布式执行原理: 1.Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent). 2.执行时,Controller会把脚本发送到每台A ...

随机推荐

  1. orcal 根据打分时间计算打分情况

    create or replace function F_GET_TEST(in_ny in date,in_project_id in number ) return number is sRetu ...

  2. C++模板函数实践1

    实践如下: #include <iostream> #include <typeinfo> using namespace std; class Bean{ private: ...

  3. Could not parse configuration: /hibernate.cfg.xml

    hibernate需要联网验证dtd,错误原因:未联网或网速不行

  4. LoadRunner运行时异常处理

    VuGen提供了错误处理函数lr_continue_on_error,用来在脚本中实时修改Vuser的出错设置.lr_continue_on_error函数语法结构如下: Loadrunner在运行过 ...

  5. WPF prism 类、属性和方法的导入和导出

    学习Prism一定要掌握依赖注入的应用,只有了解了Prism的依赖注入才能更好的使用Prism提升应用开发的架构. 首先说明Prism依赖注入有两种方式及MEF和Unity ,在Prism中是两个没有 ...

  6. oracle 12 安装

    oracle 12 第二版本安装 下载地址  https://www.oracle.com/technetwork/cn/middleware/webcenter/content/downloads/ ...

  7. 部署php程序报错:站点已关闭

    场景: 之前把公司线上的php源码包拿到笔记本的虚拟机上测试部署,部署完成后通过浏览器访问总是出现站点已关闭 原因:把线上php程序配置文件config.php里面的数据库连接信息改成了笔记本虚拟机的 ...

  8. 内核参数和GRUB&GRUB2

    内核允许您使用各种选项运行系统.示例列表https://www.kernel.org/doc/html/v4.14/ad...eters.html 如何为以下项添加选项:_______________ ...

  9. docker 运行mysql最新版本用navicat连接报错:1251

    主要是:新版的mysql的加密方式发生了变化,解决方法如下: 1:进入docker容器: docker exec -it  mysql(启动mysql时候起的别名)  /bin/bash 2:登陆my ...

  10. vue --》动态路由的实现 (根据用户的权限来访问对应的模块)

    为了设置用户的访问权限,所以在一个vue工程中,往往需要前端和后端开发人员共同配合设置动态路由, 进而实现根据用户的权限来访问对应的模块 1.首先在登录页面,前端跟据后端返回的路由信息进行配置,配置后 ...