压力测试
文章平均质量分 79
测试追风
风中凌乱!
展开
-
8年测试超强整理,性能测试-压力测试-负载测试,卷起来...
软件测试包括不同的测试实践,比如单元测试、集成测试、UAT测试和可访问性测试等。每种测试实践在软件开发生命周期(SDLC)中都有重要的地位和作用。在不同类型的测试中,一些测试有助于改善应用程序的性能,比如性能测试、压力测试和负载测试。虽然这些测试的目的是改善系统性能,但是每种测试实践都有不同的策略。因此,测试应用程序的性能时,了解这些测试实践之间的区别并执行合适的测试显得至关重要。质量保证工程师常常为选择合适的性能测试以改善应用程序的行为而感到困惑。原创 2023-06-18 15:43:47 · 1415 阅读 · 1 评论 -
吐血整理,性能测试方法与步骤详细,进阶测试之路...
总体方向:性能效率测试是通过站在用户体验的角度,使用专业的负载生成设备,在性能模型的基础上验证系统是否能够达到用户提出的性能指标,是否符合用户文档中对系统设计时的性能关注点。在系统正常交互量及峰值交互量的情况下发现系统中存在的性能瓶颈,优化软件,最后达到优化系统的目的。系统既要可以承受大并发的访问,同时也需要可以为用户提供较佳的使用体验,即造成系统对性能的要求也同样较高,针对前段的性能评测也是本次评测的关键方向之一。原创 2023-06-13 14:41:46 · 459 阅读 · 0 评论 -
爆肝总结,软件测试-常见并发问题+解决方案,测试进阶...
并发测试的定义并发测试的定义中,最主要的有两点①点层面上的:例如:周一早上7:30半,小学生要统一到操场升国旗。即:同一时间做某件事②线层面上的:例如:中午11:30-13:00,小学生有的跳皮筋,有的踢足球,但同时对服务器产生压力。即:一个时间段做不同的事并发测试不等于性能测试这个问题,我面试的时候,问过多个求职者,大部分求职者的第一反应都是说并发测试就是性能测试!性能测试中把并发又分为负载和压力测试。虽然并发测试与性能测试有交集,但是,并发测试并不仅仅应用于性能测试。原创 2023-06-11 16:04:09 · 674 阅读 · 0 评论 -
软件测试技能,JMeter压力测试教程,逻辑控制器之While控制器(二十九)
目录:导读一、前言二、While控制器三、Condition 条件四、Condition 为true或false五、Condition 表达式结果不是true或false一、前言循环控制器可以设定永远循环和循环次数,缺少条件判断。While控制器可以在循环的基础上加判断,当条件为false的时候跳出循环。二、While控制器线程组 -> 添加 -> 逻辑控制器 -> While控制器Condition (function or variable) 可以是条件(函数或变量),条件原创 2022-02-20 18:58:59 · 1316 阅读 · 4 评论 -
软件测试技能,JMeter压力测试教程,逻辑控制器之如果(If)控制器(二十八)
目录:导读一、前言二、如果(If)控制器三、Expression为 true 或 false四、jexl3 或 groovy 函数五、判断语句六、函数助手一、前言当遇到需要对不同的条件做不同的操作时,我们可以使用 JMeter 中 if 控制器来实现二、如果(If)控制器线程组 -> 添加 -> 逻辑控制器 -> 如果(If)控制器Expression(must evaluate to true or false):表达式必须为true或falseinterpret condi原创 2022-02-18 19:08:17 · 557 阅读 · 5 评论 -
软件测试技能,JMeter压力测试教程,逻辑控制器之交替控制器(二十七)
目录:导读一、前言二、交替控制器三、运行场景四、忽略子控制器一、前言有这么一个场景:用户访问商品列表页,第一个用户下单商品A,第二个用户下单商品B,依次下单于是可以用的jmeter的逻辑控制器-交替控制器来实现二、交替控制器交替控制器:如果将采样器或逻辑控制器添加到交替控制器,则JMeter将在每个其下的控制器之间交替进行每次循环迭代线程组 -> 添加 -> 逻辑控制器 -> 交替控制器忽略资(子)控制器块:如果勾选,交替控制器将处理子控制器,如单个请求元素,并且每个控制器一原创 2022-02-17 18:55:24 · 392 阅读 · 4 评论 -
软件测试技能,JMeter压力测试教程,逻辑控制器之吞吐量控制器(二十六)
目录:导读一、前言二、吞吐量控制器三、查看结果四、控制总的请求数一、前言假设我们有个压测场景是20%的用户访问商品A,80%的用户访问商品B,如何使用jmeter来控制用户的访问比例呢?二、吞吐量控制器线程组-添加-逻辑控制器-吞吐量控制器吞吐量控制器是用来控制其下元件的执行次数,并无控制吞吐量的功能。作用:控制其下的子节点的执行次数与负载比例分配有两种方式:Total Executions:设置运行次数Percent Executions:设置运行比例(1~100之间)per user原创 2022-02-16 18:57:59 · 1289 阅读 · 6 评论 -
软件测试技能,JMeter压力测试教程,逻辑控制器之事务控制器(二十五)
目录:导读一、前言二、事务场景三、事务控制器四、添加操作步骤五、查看聚合报告一、前言TPS就是每秒钟所处理的事务数,那么到底什么是事务呢?事务是用户自定义的一个标识,是一个或多个操作完成一个业务所花费的时间,事务时间反映的是一个操作过程的响应时间二、事务场景电商场景大家并不陌生,用户先登录 - 浏览商品 - 添加到购物车 - 打开购物车列表 - 生成待支付订单 - 支付完成 - 订单生成从用户登录到生成一个有效的订单就是一个事务,如何测试系统每秒能处理几个订单,这就是通常说的TPS真实场景中,原创 2022-02-15 19:13:02 · 672 阅读 · 5 评论 -
软件测试技能,JMeter压力测试教程,获取post请求x-www-form-urlencoded格式的数据(二十四)
目录:导读一、前言二、x-www-form-urlencoded三、BeanShell 预处理程序四、查看运行结果一、前言post请求的参数有一些是json格式,也有一些是x-www-form-urlencoded格式,前面讲签名的时候获取到post请求的是json格式本篇继续讲x-www-form-urlencoded格式的请求body如何获取到二、x-www-form-urlencoded在请求头部添加Content-Type类型为x-www-form-urlencoded定义用户变量,账号原创 2022-02-14 18:56:38 · 1654 阅读 · 6 评论 -
软件测试技能,JMeter压力测试教程,通过Jython调用Python脚本(二十三)
目录:导读一、前言二、Jpython三、JSR223 Sampler四、变量获取与日志五、设置响应一、前言前面在 BeanShell 里面是通过 java 脚本实现请求的预处理,jmeter里面也可以调用python的脚本,需安装 jython.jar 的插件Jython 是 Python 的纯 Java 实现,它无缝地结合了 Java 类与 Python,使用户能以 Python 语言的语法编写在 Java 虚拟机上运行的软件二、JpythonJython 是 Python 的纯 Java 实现原创 2022-02-13 19:11:54 · 519 阅读 · 4 评论 -
软件测试技能,JMeter压力测试教程,请求头部自动签名带上X-sign参数(二十二)
目录:导读一、前言二、实现方式三、添加 BeanShell 预处理程序一、前言接口请求 body 带有 sign 签名参数,sign 签名是根据请求 body 除去 sign 本身参数后,拼接请求参数最后 md5 加密生成的前面一篇是把 sign 前面参数放到请求的 body 里面,这篇继续讲把签名参数放到请求头部的情况二、实现方式http 请求需要进行签名校验 X-Sign,放到请求头部Content-Type: application/json; charset=UTF-8X-Sign:原创 2022-02-11 19:20:19 · 1583 阅读 · 4 评论 -
软件测试技能,JMeter压力测试教程,请求body自动签名带上sign参数(二十一)
目录:导读一、前言二、sign签名三、BeanShell 预处理程序四、查看结果树一、前言接口请求body带有sign签名参数,sign签名是根据请求body除去sign本身参数后,拼接请求参数最后md5加密生成的使用 jmeter 测试接口,我们希望在请求之前修改 post body 里面的 sign 参数的值为签名的值二、sign签名签名一篇的实现方式是添加 BeanShell 预处理程序,生成sign值,设置一个变量,然后在请求的body里面引用变量可以参考前面这篇:https://blo原创 2022-02-10 19:21:52 · 1790 阅读 · 6 评论 -
软件测试技能,JMeter压力测试教程,签名sign(BeanShell 预处理程序)(二十)
目录:导读前言一、sign签名二、python实现sign签名三、jmeter 添加 BeanShell 预处理程序四、sign 签名五、引用sign变量前言一般公司对外的接口都会用到sign签名,对不同的客户提供不同的apikey ,这样可以提高接口请求的安全性,避免被人抓包后乱请求之前讲过用python代码实现sign签名,这次介绍jmeter上如何实现sign签名,思路都是差不多的一、sign签名签名参数sign生成的方法第1步: 将所有参数(注意是所有参数),除去sign本身,以及值是空原创 2022-02-09 19:03:27 · 1302 阅读 · 6 评论 -
软件测试技能,JMeter压力测试教程,统一随机定时器/高斯随机定时器(十九)
目录:导读前言一、统一随机定时器1、统一随机定时器(Uniform Random Timer)2、设置延迟时间二、高斯随机定时器1、高斯随机定时器Gaussian Random Timer2、设置延迟时间前言如果想加个随机等待时间可以用到 jmeter 里面的统一随机定时器(Uniform Random Timer)也有的说叫均匀随机定时器(Uniform Random Timer)都是一个添加均匀随机定时器可以生成一个随机值,这个值发生的概率是相等的。实际生活中随机值的发生概率并不相等,而是符合正原创 2022-01-24 19:07:58 · 929 阅读 · 5 评论 -
软件测试技能,JMeter压力测试教程,取样器之测试活动(十八)
目录:导读前言一、测试活动(Test Action)二、Pause 设置暂停三、Stop 停止四、循环设置五、跨线程组使用前言如果想在请求之后加等待时间如何做呢?如果希望在 sampler 执行完之后再等待,则可使用取样器里面的测试活动 (Test Action)一、测试活动(Test Action)有 2 个 HTTP 请求,a 是注册用户请求,b 是登录的请求。先发 a 请求注册,注册成功后,用同一账号去登录希望在第一个请求发送之后,设置个等待时间,再发第二个请求,于是可以在线程组下添加-取原创 2022-01-23 19:19:04 · 383 阅读 · 5 评论 -
软件测试技能,JMeter压力测试教程,设置集合点(十七)
目录:导读一、前言二、同步定时器 Synchronizing Timer三、并发请求四、超时时间一、前言LoadRunner 中可以设置一个集合点,设置多个虚拟用户等待到一个时间点,到齐后一起发请求达到并发的目的jmeter 中使用 同步定时器 Synchronizing Timer实现 LoadRunner 中集合点的功能,模拟多用户并发测试,即多个线程在同一时刻并发请求二、同步定时器 Synchronizing Timer在HTTP请求的样本下添加-定时器-同步定时器有2个参数设置模拟用原创 2022-01-21 19:02:11 · 839 阅读 · 4 评论 -
软件测试技能,JMeter压力测试教程,监听器之灵活的文件写入(十六)
目录:导读一、前言二、Flexible File Writer插件三、配置参数四、可用字段一、前言JMeter使用Simple Data Writer插件具有非常简单的测试结果编写功能。文件格式仅限于XML和CSV,字段顺序已预定义。因此,你可能会发现Simple Data Writer不足以完成您的任务Flexible File Writer插件允许以灵活的格式编写测试结果,该格式通过GUI指定二、Flexible File Writer插件该插件可以通过 Plugins Manager 安装到原创 2022-01-20 18:53:06 · 832 阅读 · 5 评论 -
软件测试技能,JMeter压力测试教程,监听器之每秒事务数与响应时间(十四)
目录:导读前言一、监听器之每秒事务数1、Transactions per Second2、监听器-jp@gc - Transactions per Second二、监听器之响应时间1、每秒处理的事务数(Transactions per Second)2、响应时间(Reponse Time)前言压测的时候,我们会经常关注2个重要的指标 TPS 和 RTTPS:每秒处理的事务数(Transactions per Second),jmeter的Throughput为吞吐量(请求数/秒)RT:响应时间(Re原创 2022-01-18 17:38:37 · 4998 阅读 · 4 评论 -
软件测试技能,JMeter压力测试教程,Plugins Manager插件管理器(十三)
目录:导读前言一、插件管理器Plugins Manager二、查看插件管理三、解决报错四、插件管理前言前面讲了JDBC连接数据库的时候,需下载mysql对应的jar包,放到lib\ext目录下就可以使用了jmeter 有个插件管理器Plugins Manager,可以方便的管理其他插件的下载和更新一、插件管理器Plugins Manager下载地址:https://jmeter-plugins.org/install/Install/下载插件后把jar包放到 lib/ext 目录,然后重启jm原创 2022-01-17 17:03:15 · 4872 阅读 · 8 评论 -
软件测试技能,JMeter压力测试教程,批量注册测试账号(计数器的使用)(十二)
目录:导读一、前言二、添加注册请求三、计数器四、设置循环次数一、前言当我们jmeter压测的时候,需要准备一批测试账号,可以先批量注册一些用户,这些用户名称按固定格式注册的用户不能重复并且需要自增,那么可以使用计数器来实现二、添加注册请求我想批量注册100个账号,账号名称是yoyo_100到yoyo_199,先添加注册请求单个接口调通后,后面用计数器批量注册三、计数器注册用户名称前面一部分test_是固定不变的,变的是后面的数字100-199,于是添加配置元件-计数器计数器配置自增10原创 2022-01-16 16:25:39 · 883 阅读 · 0 评论 -
软件测试技能,JMeter压力测试教程,tearDown线程组使用JDBC清理测试数据(十一)
目录:导读前言一、注册接口前言在使用jmeter测试的时候,测试之前会有个数据准备工作,测试完成后如果产生了一些多余的数据,我们应该对数据还原清理相关的测试数据。测试结束使用tearDown线程组清理本次测试产生的多余数据,可以调用对应的删除接口删除,也可以直接删除数据库的数据。一、注册接口线程组添加一个注册接口,注册账号”yoyo_test”...原创 2022-01-14 19:13:11 · 836 阅读 · 2 评论 -
软件测试技能,JMeter压力测试教程,JDBC配置连接mysql数据库(十)
目录:导读前言一、JDBC 连接配置二、JDBC Driver三、JDBC Request前言使用jmeter压测接口的时候,有时候需要批量造数据,需使用jmeter连数据库造对应的测试数据或者测试结束后,对测试的数据还原,删掉一些垃圾数据,都会用到连接数据库执行sql的操作一、JDBC 连接配置添加配置元件-JDBC Connection Configuration先弄清楚自己的mysql数据库相关信息配置连接数据库mysql相关的配置内容Variable Name for create原创 2022-01-13 15:44:23 · 373 阅读 · 3 评论 -
软件测试技能,JMeter压力测试教程,setUp线程组批量登录(九)
目录:导读前言一、setUp 线程组批量登录二、BeanShell 保存token到本地.csv文件三、删除本地文件前言前面一篇已经实现了在 setUp 线程组实现单个用户先登录后提取token给其它线程组使用,在压测的时候,单个用户登录很显然不能满足我们的压测需求我们在压测接口的时候,需批量获取多个用户登录后返回的token值,那么在setUp 线程组可以先批量登录后把token保存到本地csv文件,后面的接口引用这个csv文件的数据参数化一、setUp 线程组批量登录我们希望能批量登录用户,先原创 2022-01-12 17:19:32 · 3580 阅读 · 0 评论 -
软件测试技能,JMeter压力测试教程,setUp线程组实现用户先登录(八)
目录:导读前言一、setUp线程组二、提取token三、线程组引用全局属性前言在接口测试的时候,很多接口都需要用户先登录,才有访问接口的权限。在测试的时候,我们的关注点其实是当前测试的接口,登录只是一个前置操作。像 python 的 unittest 和 pytest 框架都有 setUp 的概念,前置操作用来准备测试数据,jmeter 里面也有个 setUp 线程组可以实现前置准备工作。一、setUp线程组我们需要测试的是查询用户个人信息接口:/api/v1/userinfo,但是查询接口需要有原创 2022-01-11 17:54:06 · 1242 阅读 · 1 评论 -
软件测试技能,JMeter压力测试教程,压测带token的接口(六)
目录:导读前言一、场景案例二、测试token准备三、jmeter CSV数据文件设置四、运行结果前言工作中我们需要压测的接口大部分都是需要先登陆后,带着token的接口(或者带着cookies),我们可以先登陆获取token再关联到下个接口比如我现在要压测一个修改用户的个人信息接口,每个用户只能修改自己的个人信息一、场景案例我现在有一个登陆接口A,登陆成功后返回一个token值。A接口登录接口文档基本信息访问地址:http://127.0.0.1:9000/api/v1/login/请求类型:原创 2022-01-09 15:30:23 · 1426 阅读 · 7 评论 -
软件测试技能,JMeter压力测试教程,登录参数化CSV 数据文件设置(五)
目录:导读前言一、场景案例二、登录接口三、测试数据准备四、CSV数据文件设置五、查看结果前言我们在压测登录接口的时候,如果只用一个账号去设置并发压测,这样的结果很显然是不合理的,一个用户并发无法模拟真实的情况如果要压测登录接口,肯定得准备几百,甚至上千的账号去登录,测试的结果才具有可参考性一、场景案例我现在有一个登录接口,接口登录接口文档基本信息访问地址:http://127.0.0.1:8000/api/v1/login/请求类型:POST请求头部:Content-Type: applic原创 2022-01-07 15:25:04 · 4216 阅读 · 4 评论 -
软件测试技能,JMeter压力测试教程,HTTP Cookie管理器(四)
目录:导读前言一、场景案例二、HTTP Cookie管理器三、302 重定向四、客户端实现 Java 请求前言Web网站的请求大部分都有cookies,jmeter的HTTP Cookie管理器可以很好的管理cookies我用的 jmeter5.1 版本,直接加一个HTTP Cookie管理器放到请求的最前面,就可以自动管理cookies了看到网上有些教程说要把jmeter.property文件中将 CookieManager.save.cookies 设置为true,我这里 jmeter5.1 版原创 2022-01-06 16:01:32 · 204 阅读 · 5 评论 -
软件测试技能,JMeter压力测试教程,正则表达式提取(三)
目录:导读前言一、场景案例二、登录请求三、正则提取器四、引用参数前言接口关联,上一个接口返回的 token 作为下个接口的入参,除了前面一篇讲到的用 json 提取器提取,也可以用正则提取json 提取器只能提取 json 格式的数据,正则可以匹配任意的返回一、场景案例我现在有一个登陆接口 A,登陆成功后返回一个 token 值,有一个获取绑定卡号的接口 B,但是接口 B 必须要先登录后传登录的 token 才能访问A 接口登录接口文档基本信息访问地址:http://127.0.0.1:800原创 2022-01-05 14:38:20 · 3382 阅读 · 11 评论 -
软件测试技能,JMeter压力测试教程(二)
目录:导读前言一、案例场景二、登录请求三、Json 提取器四、关联请求五、遇到的坑前言现在很多接口的登录是返回一个json数据,token值在返回的json里面,在jmeter里面也可以直接提取json里面的值上一个接口返回的token作为下个接口的入参一、案例场景我现在有一个登陆接口A,登陆成功后返回一个token值。有一个获取绑定卡号的接口B,但是接口B必须要先登录后传登录的token才能访问A接口登录接口文档基本信息访问地址:http://127.0.0.1:8000/api/v1/lo原创 2022-01-04 17:13:11 · 225 阅读 · 7 评论 -
软件测试技能,JMeter压力测试教程(一)
目录:导读前言一、安装Java环境二、安装JMeter环境三、启动JMeter脚本测试四、查看报告文件前言使用jmeter做压测的时候,在windows上不太稳定,所有一直在 Linux 服务器上使用 jmeter 做压力测试本篇记录下 Linux上搭建 jmeter 环境,以及运行 jmeter 脚本,查看报告相关环境:java 1.8jmeter 5.1.1一、安装Java环境先在Linux上安装java环境,安装1.8.0版本,先查找 java 相关的列表yum -y list ja原创 2022-01-03 16:02:18 · 1946 阅读 · 8 评论