当前位置 博文首页 > 无限迭代中......:性能测试——美团国内机票网站(Badboy、JMet

    无限迭代中......:性能测试——美团国内机票网站(Badboy、JMet

    作者:[db:作者] 时间:2021-07-06 09:41

    如浙理同学,看到这篇文章,请注意不要看老师发的美团功能测试说明,因为它过期了,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 录制后,请删除关键请求外多余的请求,否则会造成多余无用请求,在运行时花费较长时间。

    参考文章

    cs