美文网首页
Jmeter实现简单web负载测试

Jmeter实现简单web负载测试

作者: yuansc | 来源:发表于2015-11-16 14:05 被阅读1223次
    logo.jpg

    简介

    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。

    安装

    上面的文字提到 Jmeter是基于Java进行开发的,所以理论上我们可以运行于任何安装有�Java的平台上,而事实也确实如此,我们就大概说一下安装步骤。

    • 安装Java环境,这一步我们就不做过多解释了,无论是百度、google 都可以搜到大量设备安装Java的技术文章。
    • 下载源代码,官网下载
      • 打开官网,到下载页面
    QQ20151116-0.png
    • 解压
    • 运行
      对于有用户界面的Windows和Mac来说双击bin目录下的jmeter即可,对于无用户界面的server端我们接下来会专门说一下。
      更加详细的打开方式可以看这里

    使用

    我们现在已经将Jmeter安装完成了,下面的问题就是如何操作了
    下图便是Jmeter打开后的界面


    QQ20151116-1.png
    • 添加测试任务
      本文主要示例为 模拟多GET请求的负载测试方案
      界面开始已经默认添加了一个测试计划,我们下面的步骤 也是要围绕着这个测试计划展开。
      • 添加线程组

        QQ20151116-3.png
        在线程组里我们要定义模拟访问的用户量以及访问频率访问时间
        线程数 表示模拟同时有多少个用户进行访问
        访问周期 表示每组现成访问的时间间隔
        循环次数 则是表示线程组要循环访问多少次,可选永远
        调度器 则是为了更好地控制测试的时间 在里面我们可以更好的指定测试计划,一般 调度器与循环次数任选其一
      • 添加HTTP请求内容
        添加HTTP请求内容,是真正我们要定义的请求的域名,请求的访问方式 访问内容的地方。

        Paste_Image.png
        web服务器一栏我们就不多解释了,主要是请求的域名,IP加端口,在上图中我们以本地跑的一个服务为例
        HTTP请求这一栏是定义请求的内容,请求的path、POST请求的内容、上传的文件等东西
        在这里我们要模拟GET请求来测试 服务器的负载均衡,要考虑多样情况,我们自然要分不同的请求接口来进行测试,而不能单独放在一个接口上吊死,这样可以更加真实的模拟用户请求,也可以更加真实测出server的负载。
        在这里我们要用到一个Jmeter内置的函数_StringFromFile
        QQ20151116-6.png

    其中四个参数,第一个是文件名,第二个是要携带的参数(暂时未用到),第三个是开始行数,第四个是结束行数。填写完成后,点击生成会输出一段字符串在里面,

    QQ20151116-5.png

    这是我们的一个示例文件,每一行为一个请求,可以自定义请求参数在里面
    我们开始 结束行数都不写,这样在顺序执行完这两次请求后会继续循环执行。

    我们已经生成一个函数字符串了,下面我们将刚才得到的字符串,填写到HTTP请求的路径里面,简单的一个测试计划基本就完成了。

    测试

    我们上面完成了基本的测试计划,下面我们就要开始进行测试,如果我们在用户界面,我们需要看到测试详情,以及汇总方案怎么办呢,在刚才的线程组上,添加 用表格查看结果聚合报告 监听器就好了
    点击上面的运行 我们会在上面的报告里面依次看到下图结果

    ![QQ20151116-8.png](https://img.haomeiwen.com/i392654/011bf08ea4e53349.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    这样,我们简单的测试也就基本完成了。

    Server端测试

    许多时候,我们的界面端 配置都比较低,所以有时候我们需要强大的Server端来协助完成测试。
    server端上的安装,我们就不说了,和界面端大同小异,安装java 下载程序

    • 在用户界面导出测试计划的JMX文件,上传到服务器
    • 将上图我们生成路径的文件 也上传到服务器
    • 编辑JMX文件,将原先的URL文件路径 替换为服务器上的文件路径
    • 运行
    ./jmeter -n -t ../../HTTP请求.jmx -l ../../log
    

    -n 表示 没有用户界面
    -t 指的是测试文件 JMX
    -l 则是表示详细的测试请求log 文件位置

    运行完上面的代码后 会出现下面的结果

    QQ20151116-9.png

    因为我们随便指向的一个服务,所以err 是100% ,请大家自动忽略,这样大家就可以在服务器上完成测试了。

    PS

    随着项目的增大,单台服务器已经完成不了测试任务,这时候我们可以使用Jmeter的多节点模式来进行操作,让多台机器同时进行测试。这一个我们也把它放到之后再去探讨。

    参考

    官网:jmeter.apache.org

    相关文章

      网友评论

          本文标题:Jmeter实现简单web负载测试

          本文链接:https://www.haomeiwen.com/subject/rpmkhttx.html