性能测试——美团国内机票网站(BadboyJMeter)

Posted Starzkg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能测试——美团国内机票网站(BadboyJMeter)相关的知识,希望对你有一定的参考价值。

如浙理同学,看到这篇文章,请注意不要看老师发的美团功能测试说明,因为它过期了,mooctest下载题目后,进入题目文件夹即可看见最新测试说明,例如:在这里插入图片描述

被测系统

a) 系统名称:美团国内机票网站
b) 系统链接:https://www.meituan.com/flight/

测试工具

慕测 JMeter 客户端:在编写脚本时,请使用最新版本的慕测 JMeter 客户端。如不使用最新版本可能造成得分显示错误以及评分无法上传的情况。下载
Badboy:http://www.winwin7.com/soft/7021.html

测试范围

对“美团国内机票网站”中的“机票-国内机票查询功能进行性能测试,在测试过程中必须按要求对录制的脚本进行修改(包括参数化、集合点、事务等)。

测试要求

  1. 创建名为meituanflight线程组(Thread Group),该线程组负责对美团机票目录中的国内机票查询功能进行性能测试,相关的操作应放置在该线程组中。
    1. 操作流程:
      i. 进入到美团机票-国内机票页面;
      在这里插入图片描述
      ii. 输入出发城市、到达城市、去程时间;
      iii. 点击搜索,进入到结果页。
    2. 在该线程组处配置 50-100 个并发用户和合适的 ramp up period,线程组执行时间为 1 分钟。
      i. 注意:在使用 jmeter 自带的run 功能时,不要使用超过 30 的线程数运行脚本, 否则会造成端口被封。正确流程是:
      1. 使用较小线程数(10 以内)运行脚本和进行评分,保证除线程组以外的评分项获得理想分数
      2. 再调整线程组配置,然后直接进行评分,不使用 jmeter 自带的 run 功能。请严格按照该注意事项进行操作,若造成端口被封,请换用其他 IP 和端口。如果还是不行,造成分数误差,后果自负。
    3. 对于这部分脚本,在关键的搜索请求处添加事务、参数化(对出发城市、到达城市,和去程时间做参数化,其他搜索字段不做要求),并在关键搜索请求处添加集合点。注意:
      i. 请使用 CSV 数据文件配置(CSV Data Set Config)进行参数化,不要使用_CSVRead 等方式;
      ii. 参数文件请使用 csv 格式;参数文件中最多包含 10 组数据即可,测试数据过多会导致评分速度过慢。
      iii. 请将参数文件和脚本文件放在同一级文件夹下,并在 CSV 数据文件配置(CSV Data Set Config)中使用相对地址作为参数文件名,如 data.csv,不需要在文件名前使用./。文件不在同级目录、使用绝对地址、以及在文件名前使用./这三 种行为都会造成评分误差;
      iv. 事务的位置、参数化的位置和集结线程数请自行配置
  2. 整理脚本,保证脚本执行成功(若果存在.css 或图片等的非关键链接执行失败,可以删除掉这部分链接)。
  3. 脚本编写有下面三种方法,选择一种方法即可,推荐使用后两种较为简单的方法。这三种方式外的其他编写方式可能会出现评分失败的情况
    i. 使用浏览器的开发者工具捕获 http 请求,并手动编写脚本。
    ii. 使用 JMeter 客户端自带的录制功能,在浏览器中安装ApacheJMeterTemporaryRootCA.crt,录制脚本
    iii. 使用 Badboy 进行脚本录制后,通过 file -> Export to JMeter 得到脚本。

测试过程

Badboy录制脚本

在这里插入图片描述

JMeter制作脚本

导入脚本

在这里插入图片描述

重命名线程组

在这里插入图片描述

配置线程数、启动时间、运行时间

在这里插入图片描述

添加事务

在这里插入图片描述

添加同步点定时器(集合点)

在这里插入图片描述

搜索请求参数化

data.csv 参考:
PER,SHA,2021/6/30
HGH,SHA,2021/7/1

在这里插入图片描述
在这里插入图片描述

运行和提交

测试工具为慕测 JMeter 客户端,请使用 JMeter 客户端菜单栏中的 MoocTest 菜单项下面的功能进行运行和提交,其中 Run 是运行和评分功能,Submit 是提交功能。
每次提交前,JMeter 客户端会再次对脚本进行运行和评分,并提交本次运行的分数和脚本。
本项目满分100分,在考试结束前,请一定要至少提交一次,否则最终会没有成绩。

测试结果

在这里插入图片描述

注意事项

  1. 不推荐用超过 30 的线程数跑 jmeter 脚本,会造成端口被封。请先使用较小线程数进行运行和评分,保证除线程组之外的其他评分项得分后,再调整线程组配置,直接评分。
  2. 参数化文件中,参数数据的组数越多,评分速度越慢。因此为了保证较快评分,在参数化文件中最多配置 10 组参数数据。
  3. 请将参数文件和脚本文件放在同一级文件夹下,并使用相对地址作为参数文件名,如
    data.csv,不需要在文件名前使用./。文件不在同级目录、使用绝对地址、在文件名前使 用./这三种行为都会造成评分误差
  4. 在使用 jmeter 录制脚本时,请在浏览器中正确安装
    ApacheJMeterTemporaryRootCA.crt,安装方法见官方文档
    (https://jmeter.apache.org/usermanual/component_reference.html#HTTP%28S%29_Tes
    t_Script_Recorder)。安装有误会造成 jmeter 无法录制全部请求。
  5. 使用 JMeter 客户端录制功能或者 Badboy 录制后,请删除关键请求外多余的请求,否则会造成多余无用请求,在运行时花费较长时间。

参考文章

以上是关于性能测试——美团国内机票网站(BadboyJMeter)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Apache的ab工具进行网站性能测试

如何使用Apache的ab工具进行网站性能测试

性能测试loadrunner

从技术细节看美团的架构

国内5家云服务厂商 HTTPS 安全性测试横向对比

一分钟学会网站性能在线评估