zoukankan      html  css  js  c++  java
  • Jmeter性能测试-分布式压力测试

    作为一个测试行业的菜鸟,由于投身于一个小公司,包揽所有的测试。刚开始的功能测试到接口测试,稳定性测试,兼容性测试等,一般由于是小项目所以对于性能有所忽略,也没怎么涉及,公司接了个大项目,后期对于性能上有一定的要求,对于并发用户要求也是比较高的,所以利用项目之间的空隙自学下。

    1.java运行环境

    说是自学,但是对服务器这些的概念还是很模糊的我,还是得先了解下软件的运行环境,服务器等概念才好下手。

    由于正式的环境客户是购买了阿里云的服务器,所以了解了下简单的流程

    购买域名--购买服务器(选择操作系统Linux或者windows)--远程桌面连接(本机下载putty等软件)--配置java运行环境在云服务器上--下载tomcat在服务器上--利用远程软件上传源码到服务器上Apache

    webapps的文件夹下--打开tomacat文件夹,修改配置文件,添加购买的域名--备案,域名解析,这样就可以通过域名访问网站了。

    tomcat是一个服务器的软件,所以服务器的性能测试也就是tomcat的性能测试

    2.jmeter服务器分布式性能测试

    将jmetter的服务端安装在服务器上--确定并发数从而确定并发的电脑数--在需要分布式的代理计算机上配置环境--安装jdk,java,jmeter等软件--在主控制机上打开jmeter.properties的软件搜索remote,添加远程

    计算机的ip地址用逗号隔开--在服务器上打开jmeter服务端的文件jmeter-server.bat--在控制机上打开jmeter,添加线程(设置线程数即并发数),http请求,监视器等--点击运行中的远程启动全部。完成分布式压力测试

    在性能分析上需要结合网络,数据库,代码,服务器等方面综合分析性能瓶颈

    服务器性能测试,添加服务器指标:

    在服务器端打开jmeter测试连接成功后,监控服务器的性能指标,添加监视器:jp@gc-PerMon Metrics Collector,添加监控的性能指标cpu,memeroy等

     

     

    3.布式测试注意点

    单台电脑1000或者5000以上的并发无法支撑这么大的并发数,需要分布式, 随着并发的增大,tps不会增长,即出现瓶颈(排除服务器瓶颈及其他),可能是本测试机找不住了,则要分布式

    进行分布式平台测试的时候,要最好注意以下几点:

    1. 防火墙应该关闭

    2. 所有客户端应该都在同一个子网中

    3. 确保jmeter可以访问服务器

    4. 确保各个jmeter,java版本一致,不同版本可能会存在协同问题

    5.如果测试用到了外部数据文件,那么请注意这些文件不会被JMeter客户端分发,因此测试人员需要确保每台执行机上都保存了这些数据文件(其所在目 录也必须正确)

    (1)jmeter-properties:remote_hosts添加:远程主机ip地址和端口号,以逗号分隔开

    (2)设置后,主机的jmeter重启,点击【运行】>【远程启动】

    出现的问题:运行后,远程的响应数据为空

    原因:测试的文件以及数据的路径不一致

    解决方案:远程的测试文件需要用到绝对路径

    4.数据库性能测试

    a.JDBC Connection-mysql数据库驱动配置

    http://blog.csdn.net/smj811504083/article/details/70844703

    测试计划>线程组>JDBC Connect Configuration,JDBC request,察看结果树

    (1)JDBC Connect Configuration

    (2)JDBC request

    (3)运行

    出现的问题:“Cannot load JDBC driver class 'com.mysql.jdbc.Driver”,是因为缺少JDBC连接MySql的驱动包,因此需要手动添加驱动包。

    解决方案:

    下载mysql-connector-java压缩文件:https://dev.mysql.com/downloads/file/?id=472651

    解压后将文件放在jmeter的lib文件夹下

    在测试计划中添加jar文件:

     b.Bean Shell Sample

    注意:

    (1)写完的每个语句后面必须加上分号;

    (2)csvread取值方式以线程为主,循环取值

    也可以参考:传送门

  • 相关阅读:
    网页加载进度条
    【转载】通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?
    前端知识复习:Html DIV 图文混排(文字放在图片下边)
    NOPI导出Excel
    C# 发送邮件
    DataSetToList 和 DataTableTolist 转换
    一个修改版的PHP ajax Tree树形菜单
    你的站为什么百度无动于衷——10年老站长的SEO肺腑之言 .
    关于php使用phpqrcode生成二维码的完整源码下载
    php结合phpqrcode生成带图片LOGO的二维码
  • 原文地址:https://www.cnblogs.com/insane-Mr-Li/p/10132017.html
Copyright © 2011-2022 走看看