zoukankan      html  css  js  c++  java
  • jmeter-6-从入门到放弃【性能基础篇】

    通常我们使用【阶梯式】压测,支持远程启动分布式压测。阶梯式也就是模拟一段时间内不断增长,直到指定的数量暂停增长,在一段时间进行大量请求测试。

    如果需要并发测试,那么将需要合理设计场景,比如秒杀,可以使用同步器,一键启动所有远程调用多个机器把1000个线程用户启动完成,然后一起发送请求。

    性能测试是很需要对整个链路数据的流向经过哪些(调用了谁、经过哪些中间件)

    个人认为性能测试的价值:体现在应用服务机器成本中

    Jmeter安装使用基础可以参考:https://www.cnblogs.com/gsxl/p/14993497.html

    一、性能测试使用到的分析

    1、压测多大的量?

    • 可以通过产品经理询问每天xx订单在多少量?再结合28原则
    • 监控信息每天访问此接口数量
    • 数据库信息得知用户量是多少,再结合28原则,是否摸高测试

    2、压测是做单个接口还是多个?

    • 根据业务场景进行,比如电商行业,选购+下单+支付,便是3个接口(得看涉及的接口范围,简称:链路式)
    • 如果有明确压测只需【查询业绩】 接口,那就单个压测。比如签到、秒杀。

    3、性能测试28原则

    指80%的业务量在20%的时间(s)里完成。

    1. 例:如某系统,每天单量10w,90%下单主要集中在9-12点。

       则:业务量=10w个,时间=3x60x60=10800s

      TPS=(90%*10w*80%) / (20%*10800)=0.9*10w*0.8/(0.2*10800)=72000/2160=33.33个/s     (TPS:系统每秒处理事务的个数)

    4、过程监控,分析与调优

    • cpu
    • 内存
    • 磁盘io
    • 网络使用情况
    • 中间件:数据库、mq、redis
    • 代码性能
    • jmeter 压测返回结果、99线平均响应时间、TPS每秒应用处理事务的数量

    5、性能测试执行具体步骤

    • 方案确定
    • 脚本编写            (需调试跑通)
    • 测试数据准备  (个人认为压测工作量主要之一在这里,准备数据比较麻烦)
    • 执行脚本            (先调试一个请求成功,在设置>2,确保没问题后设置好对应线程数等等) 
    • 过程记录或分析及反馈,是否第N轮,是则重复(可能需要改线程数等)
    • 编写报告      

    二、线程组界面简介:

    线程数:并发数量

    Ramp-Up时间:多少秒起完上面设置的线程数,一般为线程数的1-2倍。

    循环次数:要循环多少次?一般压测是勾选循环

    持续时间:在压测时,是通过一定的范围时间内压测。

    三、Jmeter 执行前需设置

    1、聚合报告-配置,去掉勾选 XML (用来生成报告)

    2、数据收集写入文件,用来生成报告的。

    3、报告生成

    需要把jmeter配置先改一下,文件:D:apache-jmeter-5.3injmeter.properties

    490行的,jmeter.save.saveservice.output_format=csv

    需要注意路径,如我的:

    • E:apache-jmeter-5.3injmeter -g data.csv -o reprot.html

    data.csv        为刚才汇总报告写入的文件路径

    reprot.html   为生成的报告路径

    打开报告的 html 文件。

    4、编写报告及发送

    报告可以使用word、excel等下编写,主要体现,压测需求,测试机器环境,报告的过程中的图表走势图(吞吐量/响应时间等等),是否满足压测需求,

    报告模板可以参考百度一大堆

    注:

    • 1、压测报告需注明我们压测的环境。
    • 2、如发现压测机与本地请求响应时间不一样的时候,我们要测的是应用的性能而不是网络的性能。

    本篇文章只是入门级,适合能够编写脚本,分析压测量,执行脚本,但不会太多分析调优的测试人员。

    最后额外分享:

    性能测试 ①登录需要怎样绕过验证码? ②登录密码需要加密或者请求信息都要加密怎么办?

    答:最简单的就是,手动去登录把token粘贴到脚本上。

    其次请求信息都要加密怎么办?如果后端使用的是Java那么可以直接让开发给加密的方法规则,如果不是那可能你要自己折磨写一个加密的Jar包。

    欢迎来大家QQ交流群一起学习:482713805

  • 相关阅读:
    复利计算-做汉堡,结对2.0-复利计算再升级
    java集合
    java 封装,继承,多态基础
    购物车
    ajax
    演示
    实验四
    实验三
    构建之法6-7章读后感
    作业调度模拟程序
  • 原文地址:https://www.cnblogs.com/gsxl/p/14993700.html
Copyright © 2011-2022 走看看