草庐IT

jmeter编写压测脚本规范

做测试的喵酱 2023-07-18 原文

一、压测时长

压测时长,一般为10分钟或者15分钟。

设置时长:

勾选 永远--持续时间(秒)

二、脚本编写规范

脚本越简单越好,多余的监听会影响jmeter的性能,继而影响到压测结果。

一个基础的脚本,监听,一般只有一个断言。(不需要结果树、聚合报告等等)

2.1 断言也是非必须的

比如写的操作,可能通过人工去数据库查看数据推断是否写入成功这种,就不需要加断言。

但是其他不能推断出结果是否正确的,需要添加断言。

2.2 报告查看

我们不用那么多的监听插件,最后结果在生成的jtl 文件中查看,比聚合报告强大,jtl你可以拿去看RT  TPS  vu  生成html。

三、脚本执行

1、使用non gui 模式,执行,避免对性能的影响。

一、jmeter non gui 模式启动_做测试的喵酱的博客-CSDN博客_for load testing, use cli mode (was non gui): jmet

2、串联运行多个线程组

实现效果:

运行完线程组1后,再去运行线程组2

设置入口:

测试计划--勾选 独立运行每个线程组

应用场景:

晚上下了班,可以跑多个线程组。

四、数据指标

两个维度,确定一个指标

xx并发下的RT

RT 下的,测VU(并发)

2.2 TPS

TPS(达到TPS,或者最大TPS)用不同的并发数量去测试。这是一个动态值,不同并发下的,tps也不同

五、准备压测物料

造测试物料,大量物料时,不要通过接口造,直接在数据库里插数据。

六、单接口/混合场景

压测接口,我们大部分都是压测单接口。

即使是混合场景,我们压的也是一个单接口。(不知道这么描述对不对)

举个例子:

你要压测一个注册登录的场景。手动的业务场景,就是先去注册,然后拿着注册的数据去登录。

但是我们在压测这个场景的时候,不需要将这个两个接口串联成一个业务。

注册就是单独的一个注册压测,登录就是一个单独的登录压测。 每个接口都是独立的。(提前准备好注册数据,与登录数据)

7、压测场景分析

7.1 每个接口都需要带着登录获得的token

背景:

被压测的app,里面每一个接口都需要带着token 去 请求。 这个tonken是登录的时候获取的。 所以我在写每一个接口脚本的时候,都需要在每一个接口脚本里加一个登录步骤是吗?

解决办法:

方法1、必须就加上,还要设置仅一次

方法2、token有效期可以让开发设置的久一些,然后自己存到本地文件里做参数化,这样登录后的接口想怎么搞就怎么搞

八、并发量级

jmeter 官方建议,不超过1000并发。

当并发太多时,就需要分布式。

有关jmeter编写压测脚本规范的更多相关文章

  1. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  2. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  3. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  4. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  5. postman——集合——执行集合——测试脚本——pm对象简单示例02 - 2

    //1.验证返回状态码是否是200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});//2.验证返回body内是否含有某个值pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});//3.验证某个返回值是否是100pm.test("Yourtestname",function(){varjsonData=pm.response.json

  6. ruby - 确定 ruby​​ 脚本是否已经在运行 - 2

    有没有一种简单的方法可以判断ruby​​脚本是否已经在运行,然后适本地处理它?例如:我有一个名为really_long_script.rb的脚本。我让它每5分钟运行一次。当它运行时,我想看看之前运行的是否还在运行,然后停止第二个脚本的执行。有什么想法吗? 最佳答案 ps是一种非常糟糕的方法,并且可能会出现竞争条件。传统的Unix/Linux方法是将PID写入文件(通常在/var/run中)并在启动时检查该文件是否存在。例如pid文件位于/var/run/myscript.pid然后你会在运行程序之前检查它是否存在。有一些技巧可以避免

  7. ruby - ruby 脚本可以预编译成二进制文件吗? - 2

    我正在开发一个Ruby脚本,需要在没有Ruby解释器的情况下部署到系统上。它将需要在使用ELF格式的FreeBSD系统上运行。我知道有一个ruby​​2exe项目可以编译在Windows上运行的ruby​​脚本,但是在其他操作系统上这样做容易吗?甚至可能吗? 最佳答案 您是否检查过Rubinius或JRuby是否允许您预编译您的代码? 关于ruby-ruby脚本可以预编译成二进制文件吗?,我们在StackOverflow上找到一个类似的问题: https://

  8. ruby-on-rails - 如何为空白字段编写 rspec? [Rails3.1] - 2

    我使用rails3.1+rspec和factorygirl。我对必填字段(validates_presence_of)的验证工作正常。我如何让测试将该事实用作“成功”而不是“失败”规范是:describe"Addanindustrywithnoname"docontext"Unabletocreatearecordwhenthenameisblank"dosubjectdoind=Factory.create(:industry_name_blank)endit{shouldbe_invalid}endend但是我失败了:Failures:1)Addanindustrywithnona

  9. ruby - gem 规范失败 - 2

    我正在为毕业设计开发GEM,TravisCI构建不断失败。这是我在Travis上的链接:https://travis-ci.org/ricardobond/perpetuus/builds/8709218构建错误是:$bundleexecrakerakeaborted!Don'tknowhowtobuildtask'default'/home/travis/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_wrapper:14:in`eval'/home/travis/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_

  10. ruby-on-rails - 尝试为 Rails 中的用户名验证编写 REGEX - 2

    我正在尝试用Ruby(Rails)编写一个正则表达式,以便用户名的字符仅包含数字和字母(也没有空格)。我有这个正则表达式,/^[a-zA-Z0-9]+$/,但它似乎没有用,我在Rails中收到一个错误,说“The如果正则表达式使用多行anchor(^或$),这可能会带来安全风险。您是要使用\A和\z,还是忘记添加:multiline=>true选项?"我的user.rb模型中此实现的完整代码是:classUser我做错了什么以及如何修复此正则表达式,使其仅对数字和字母有效而不对空格有效?谢谢。 最佳答案 简短回答:使用/\A[a-z

随机推荐