分布式性能测试(网络分布式测试)

知梧 1213 2022-12-14

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

本篇文章给大家谈谈分布式性能测试,以及网络分布式测试对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享分布式性能测试的知识,其中也会对网络分布式测试进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

  • 1、Jmeter 分布式性能测试方案

  • 2、分布式系统的分布式系统的测试

  • 3、求助如何确定JMeter分布式性能测试client能承受的最大thr

  • 4、JMeter 4.0 分布式测试原理及填坑注意事项

  • 5、如何利用Jmeter做分布式压力测试


Jmeter 分布式性能测试方案

Jmeter 分布式工作原理

控制机: 分发脚本 和 回收响应数据

执行机: 一般使用服务器

Jmeter 分布式工作流程

1.选择其中一台作为调度机(master),其他机器做为代理机(Agent)。

2.执行时,master 会把脚本数据发送到每台 Agent上,Agent 拿到脚本后就开始执行,Agent执行时不需要启动GUI,通过命令行模式执行的

3.执行完成后,Agent 会把结果回传给 master,master会收集所有Agent的信息并汇总

分布式操作流程:

1.首先 保证脚本是可以运行的--本机运行是ok的

2.保证 执行机与控制机之间网络是ok,相互ping通

3.执行机与控制机的Jmeter 和 jdk 要版本一致

4.执行机里面的jmeter是可以运行的

运行jmeter

cd ./apache-jmeter-5.1.1/bin

./jmeter.sh

./jmeter-server

5.关联控制机与执行机

(1)设置执行机的Jmeter 属性文件

(2)设置控制机的Jmeter 属性文件

(3)重启设置过的机器的 Jmeter工具

实战演示

一台控制机 + 一台执行机

   准备工作:让执行机的jmeter-server 运行起来

jmeter 有两种运行模式 

1.GUI

2.命令行

代理机设置

1. 打开window本地,进入 cmd命令行,输入 ifconfig,查看 本地 IP地址为 192.168.1.101

2.登录远程服务器,ping 本地连接,保证联通

输入 ping 192.168.1.101

3.登录远程服务器,查看本地ip

输入 ifconfig,查看服务器 ip 为 192.168.1.104

4.打开 本地 cmd,ping 远程链接

输入 ping 192.168.1.104

5. 执行机 jmeter.properties 设置 remote_hosts = 192.168.1.104:1099  

  server.rmi.ssl.disable=true

  控制机 jmeter.properties 设置 remote_hosts = 192.168.1.101:1099,remote_hosts = 192.168.1.104:1099

  server.rmi.ssl.disable=true

6.执行机启动jmeter

 进入 bin 目录,执行 ./jmeter-server

./jmeter-server-Djava.rmi.server.hostname=192.168.1.104

分布式系统的分布式系统的测试

· 在测试执行过程中,对测试结果的分析是一个需要进行深入思考的重点问题。分布式系统测试的重点在于对后端服务器集群的测试,而判定系统中是否存在Bug则是我们需要解决的重要问题。那么应该如何确定是否存在Bug呢?

对于测试结果的分析,我们通常观察下面几种情况。

观察前端应用的返回结果。这里需要分两种情况来考虑:第一,按照前端应用业务功能点及流程进行操作,观察返回结果是否符合业务方的需求预期;第二,操作后端的服务器(通常是重启、宕机、断网等操作),观察前端应用的返回结果是否符合系统的设计需求。

分析服务器日志。在功能测试过程中,当我们在启动服务器的时候,需要将日志级别定义为Debug级别(最低级别)。这样做的主要目的是为了能便于测试工程师来分析日志和定位问题。为了能更好地定位问题,常常需要在服务器程序代码中进行日志打桩,把程序中的一些重要数据通过日志的方式展现出来。通常情况下,我们需要对日志的格式进行约定,在日志行中增加一些关键字来进行分类,这将便于测试工程师进行日志分析,也有利于开展分布式系统的自动化测试。另外,值得注意的是,我们尽可能地将打桩代码放在Debug代码中,避免影响系统代码,引入新问题。

分析操作系统的一些重要信息。我们测试的分布式系统绝大多数是基于Linux操作系统开发的,在测试的过程中,除了详细分析程序日志以外,还需要对操作系统的一些重要数据信息进行分析,从而来诊断服务器程序是否存在异常。以Linux操作系统为例,我们常常会使用top命令、netstat命令及sar命令来查看操作系统的一些数据信息。例如,可以通过netstat命令检查服务器程序是否正确地监听了指定的端口等。

借助其他分析工具。例如,如何判断服务器程序是否产生了内存泄漏?通常需要借助于内存检测工具来进行分析。在Linux环境下,我们常用Valgrind来进行内存检测。这是一款非常好用、功能强大的分析工具,可以帮助测试或者开发工程师快速发现很多隐藏的程序Bug,尤其是在内存检测方面(同时它还具有很多其他优秀的功能,读者可以自己查看官网中的使用手册)。 对于分布式系统而言,压力测试和性能测试非常重要。在进行压力测试和性能测试的时候,可能会碰到下面一些难点。

数据准备。如何准备海量的测试数据并保证模拟数据的真实性?以一个分布式的文件系统为例,预先存入100GB的数据还是存入100TB的数据、存入的文件是大小基本一致差别不大还是各不相同甚至差异很大(例如,从几十字节至几十兆字节不等),这些因素对于分布式系统的性能影响是有很大差异的。另外,如果需要预先存入100TB的数据,若按每秒写入100MB数据来计算,写入100TB数据需要100×1024×1024/100=1048576秒=291.27小时=12天。我们是否能忍受这么长时间的数据准备工作?为了解决这样的问题,我们需要对系统架构设计进行深入分析,设计好测试场景,并提前进行测试用例的设计,以尽早开始准备测试数据。

性能或压力测试工具。通常来说,分布式系统的测试需要开发一些测试工具来满足性能测试的需求。如果可以的话,建议这样的测试工具最好由测试工程师自己来实现,因为测试工程师更清楚自己的测试需求。当需要自己开发测试工具的时候,有两个关键问题需要重点关注:第一,一些关键数据的收集方式与计算将成为性能测试工具的关键,例如,TPS(每秒请求数)、Throughput(吞吐量)计算的准确性;第二,要保证性能测试工具的性能,如果工具本身的性能不好,将无法给予分布式系统足够强大的压力来进行测试。另外,当考虑到多并发(例如有10万客户端同时并发连接)时,如果性能测试工具在一台测试机器上只能运行50个或者更少的话,那么需要的测试机器数量也将会很庞大(例如2000台测试机),这个成本或许是许多公司不能承受的。因此,性能测试工具本身的性能必须要足够好才能满足需求、降低测试成本。 自动化测试是测试行业发展的必然趋势,对于分布式系统测试而言也不例外。在实施分布式系统自动化测试的过程中,我们可能会碰到下面两个难点问题。

涉及平台多且硬件杂,测试流程控制困难。在实施自动化测试的过程中,测试脚本需要控制的操作系统和应用程序很多,而且存在跨平台的特性,同时还有可能需要控制一些网络设备。因此,选择一个优秀的自动化测试框架成为了非常重要的工作之一。以我们的实践经验来看,STAF是一个不错的选择,它的平台(Windows及Linux各版本)支持及开发语言的支持都很全面。

测试结果验证复杂。对于分布式系统的自动化测试来说,我们需要通过测试脚本来收集各种测试结果数据以验证测试结果的正确性。在实施自动化测试的过程中,我们可以将测试结果数据收集部分模块化,通过各子模块来检测各项数据是否正确。例如,我们会设计一个日志分析模块,主要负责从服务器应用程序的日志中收集相应数据进行对比验证(本文前面提到的在打桩日志中增加关键字部分就显得格外重要)。

随着互联网的发展,大型分布式系统也越来越多、越来越复杂、越来越重要。如何有效地保证大型分布式系统7×24小时全天候持续稳定地运行也就成为了一个重要课题。


求助如何确定JMeter分布式性能测试client能承受的最大thr

分布式性能测试我觉得这个最大thread跟具体机器配置有关分布式性能测试,当然也和JMeter自身实现相关~

为分布式性能测试了确认到底是client还是app server的问题导致的error数量,可以考虑如下方法:

单独800thread在一个client上进行测试(其他client未参与测试),看是否有error?

使用4个client,每个200 threads,一起施压,看看是否有error?

这样两种对app server来说压力一样。

JMeter 4.0 分布式测试原理及填坑注意事项

我们使用 JMeter 进行性能测试时分布式性能测试,经常遇到 JMeter 假死的情况。一般有两个原因:一是 JMeter 原本是Java写的,heap受硬件限制需要调优,二是单机无法分解超大并发比如100万+并发压测。因此,我们分二部走,首先我们需要进行jmeter分布式部署和调配,二是我们需要对每台执行机进行深度 JMeter JVM 调优,掠尽所有执行及的硬件和网络资源。


下图为 JMeter 的原理图,Controller 可以 GUI 模式运行,也可以非 GUI 模式运行。


PS:JMeter 分布式测试注意事项:


这是首要条件,JMeter 的 Controller 与 Slave 之间的连接也是通过网络通信连接起来的。如果网络通信不同,怎么连接、怎么配置都会失败,搞得分布式性能测试你一脸懵逼。


方法:ping 一下对方的 IP 地址,看是否连通。如果连通,如下所示


如果出现以下内容,说明单方向是不连通的。


连接不同解决办法:


4.0版本官方帮助文档有以下这句话:


在4.0以后的版本,需要先设置 keystore 才能正常进行分布式测试,不然会报以下错误:


在 Controller 的 JMETER_HOME/bin/ 路径,Windows 系统运行 create-rmi-keystore.bat ,Unix 系统(包含 Linux,macOS)运行 create-rmi-keystore.sh 。


当您运行该脚本时,它将询问您一些关于它将嵌入到证书中的一些名称的问题。您可以输入任何您想要的内容,只要keystore工具能接受它。第一个问题输入的值必须与属性server.rmi.ssl.keystore匹配,默认为rmi。创建 keystore 的示例如下所示。


以上步骤完成后,将 rmi_keystore.jks 复制到所有 Slave 的 JMETER_HOME/bin/ 路径。


Controller 和 Slave 的机器配置好了。先在 Slave 启动 jmeter-server 脚本,WIndows 系统运行 JMETER_HOME/bin/jmeter-server.bat ,Unix 系统运行 JMETER_HOME/bin/jmeter-server ;Controller 启动 jmeter 脚本,WIndows 系统运行 JMETER_HOME/bin/jmeter.bat ,Unix 系统运行 JMETER_HOME/bin/jmeter.sh 。


运行 jmeter-server,添加hostname。直接运行成功:


启动所有 Slave 机命令:


启动指定 Slave 机命令:


启动 JMeter 的 UI 界面后,下图是让指定远程端执行测试。选择 Remote Start All 是启动所有远程端执行测试。Controller 本身不执行测试操作。


Configuring remote engine: 132.16.17.58:2099

error during JRMP connection establishment; nested exception is:

javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake

Failed to configure 132.16.17.58:2099

Stopping remote engines

Remote engines have been stopped

Error in NonGUIDriver java.lang.RuntimeException: Following remote engines could not be configured:[132.16.17.58:2099]

```

如何利用Jmeter做分布式压力测试

-1- 为啥要使用分布式?

在使用Jmeter进行性能测试时,如果并发数比较大(比如项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能

-2- 分布式执行原理

1)Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。

2)执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行。

3)执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。

-3- 分布式部署步骤

1)把所有都在一个局域网的几台计算机都安装好Jmeter并配置好环境变量,这里需要注意的是:所有的计算机上的Jmeter版本必须一致,不然后期进行压力测试会有问题。

2)获取到所有计算机的ip地址,选择其中一台作为调度机Master,其余的作为执行机(Slave)。

3)打开Master主机上的Jmeter安装路径下面的bin文件夹,找到这个文件:jmeter.properties,打开定位到remote_hosts,然后把remote_hosts=127.0.0.1 改成 remote_hosts=slave1的IP地址:1099,slave2的ip地址:1099。比如说华华有一台执行机,ip地址是:192.168.2.112,那么我的就改成:remote_hosts=192.168.2.112:1099。如果你有多台,你只需要分别用逗号隔开即可,但是保证我们的端口号都是1099,如下图所示:

4)设置1099为master与slave之间的通讯端口,不然我们上面设置的remote_hosts就会不起作用哦!打开cmd命令行界面,输入:

SET SERVER_PORT=1099 Jmeter-SERVER

5)关闭Master与slave主机上的防火墙,一切准备就绪,接下来就是如何使用啦!

-4- 开始使用

1)打开所有Slave主机上Jmeter安装路径下bin文件夹,找到Jmeter-server.bat,双击运行。

2)打开Master主机上Jmeter安装路径下bin文件夹,找到Jmeter.bat,双击运行

3)在Master主机打开的jmeter界面,点击:运行--远程启动,你就会看到你的所有slave主机IP地址都会显示在这个远程启的列表里面,选择你要启动的slave机器并点击,之后会提示你启动成功。看看我的远程启动列表:

4)开始运行脚本。

5)最后做好结果收集,完成分布式压力测试,就差你的压力测试报告啦 关于分布式性能测试和网络分布式测试的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 分布式性能测试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于网络分布式测试、分布式性能测试的信息别忘了在本站进行查找喔。


上一篇:关于光伏系统运维—组件的介绍和分享
下一篇:电位性能测试(电位性能测试方法)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~