一文2000字从0到1用Jmeter全流程性能测试实战

项目背景:

我们的平台为全国某行业监控平台,经过3轮功能测试、接口测试后,98%的问题已经关闭,决定对省平台向全国平台上传数据的接口进行性能测试。

01、测试步骤

1、编写性能测试方案

由于我是刚进入此项目组不久,只参与了其中3个模块的功能测试,一遍接口回归测试,所以在写性能测试方案时,首先将业务流程、业务功能梳理了一遍,重点对将要性能测试的接口的文档再次仔细看一遍,在导师的引导下,对各个接口响应的功能更加了解,收获最大是,性能测试应该对应各接口的实际功能,设计合适的用例,如:针对某一对象,有两种数据上传,一种是实时数据,一种是历史数据。

此时,实时数据就应该更多考虑连续上传的稳定性,而历史数据应该更多考虑数据堆积后,一次上传多条(1000条)数据的情况,要去更多关注数据上传后的正确性,完整性

对各个接口功能和数据上传逻辑梳理清楚后,将每个接口性能测试的方法、测试项、需要的数据都设计好,整理后就是我们的测试方案了。

下面是部分截图

​测试方案是 在即实际操作尝试可行的情况下编写的,后续施行的过程中发现的需要调整的地方,按实际需求进行了调整。

2、测试方案讨论

将测试方案提交导师审核后,小组内开会讨论了此方案,组长对不合适的地方提出改进意见,同事们提出自己的想法,还有不清楚的地方也在大家的讨论中更明朗了。通过讨论后,测试方案变得更贴合项目需要、更可行了。

本次需要修改的部分截图如下:

3、性能测试执行

我们使用Jmeter工具进行测试。

接口信息如下:

测试脚本使用Java编写,数据打包为json格式。

4、输出测试报告

5、分析数据

6、问题排查

7、性能改进

02、案例分享

下面分析详细一个接口案例--历史数据上传

1、创建一个线程组:

打开Jmeter.bat,出现图形界面,依次点击如下图:

2、添加HTTP默认请求:

添加此配件为了控制此线程组的访问地址和端口,依次点击如下:

​配置HTTP默认请求参数,根据要测试的IP和端口,如下所示:

3、数据库连接配置:

因为我们要从数据库获取企业信息,所以要配置数据库连接(使用配置元件-JDBC连接配置),若你们用固定的用户名和密码登录,可以省去此步。

JDBC连接配置:


4、添加仅一次控制器:

属于逻辑控制器,用来控制采样器的执行顺序。因为这里的用户只需要登录一次,所以用仅一次控制器,即表示此控制器下的内容在整个线程组运行中只循环一次。

5、添加HTTP请求:

要添加在仅一次控制器下面,才能受它控制。HTTP请求属于Sampler(采样器),然后根据接口文档相关内容填写http请求内容。

6、添加正则表达式提取器:

需要在http请求下面添加,因为要从http请求的响应结果中通过正则表达式来提取我们需要的key。

正则表达式:

  • ():括起来的部分就是要提取的。
  • .:匹配任何字符串。
  • +:一次或多次。
  • ?:不要太贪婪,在找到第一个匹配项后停止。
(3)模板:
引用起来,如果在正则表达式中有多个正则表达式,则可以是$2
3$等等,表示解析到的第几个值给引用名称的那个量(如:key)。如:$1$表示解析到的第1个值。
(4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0。
(5)缺省值:如果参数没有取得到值,那默认给一个值让它取。

7、添加获取当前时间:

使用采样器里的BeanShell Sampler。为了方便在Redis里查看数据时知道是什么时间上传的。次数需要在采样器中编写提取当前时间的java脚本。

8、使用java编写脚本设置上传数据,

此处也使用Bean Shell Sampler采样器。数据需要json格式。这里开始,采样器就要添加在线程组下面,因为数据有可能要多次循环上传,如果只部分截图如下:

9、添加http请求,将刚设置的符合接口要求的数据上传。

10、添加监听器

​在监听器中设置运行日志保存的位置。

11、运行后查看结果

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取  

 

  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
从0开始进行性能测试使用JMeter是一个不错的选择。首先,JMeter是一个开源免费的测试工具,非常好用。它最初设计用于测试Web应用程序,但后来扩展到其他测试功能。\[1\]在开始性能测试之前,我们需要了解一些JMeter的主要元件。线程数表示一次测试运行启动多少个线程,相当于在线用户数;Ramp-Up时间决定多长时间启动所有线程;循环次数设置循环的次数或者无限循环。\[2\] 在进行性能测试时,我们需要注意一些事项。首先,不建议在真实测试中使用GUI界面,尤其是图表形式。这是因为在真实项目中,GUI界面的测试结果是不可靠的,只能用作调试。\[3\]因此,我们应该使用命令行来运行JMeter,并对测试结果进行分析。 要从0开始进行性能测试,你可以按照以下步骤进行操作: 1. 下载并安装JMeter。 2. 创建一个测试计划,包括线程组、取样器、监听器等元件。 3. 配置线程组的线程数、Ramp-Up时间和循环次数。 4. 配置取样器,例如HTTP请求,以模拟用户对Web应用程序的访问。 5. 配置监听器,用于收集和分析测试结果。 6. 运行测试计划,并观察测试结果。 7. 根据测试结果进行性能优化和调整。 通过以上步骤,你就可以从0开始进行性能测试,并使用JMeter测试应用程序的功能行为和性能。 #### 引用[.reference_title] - *1* *3* [【软件测试Jmeter性能测试性能测试Jmeter使用与结果分析)](https://blog.csdn.net/qq_46101869/article/details/122134619)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Jmeter性能测试](https://blog.csdn.net/guanrongl/article/details/124715667)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值