[JMeter]简单的多人登入压力测试

JMeter安装完成後,就可以开始尝试做一些简单的测试了,
我们可以先模拟多人同时登入的情况,进行简单的压力测试。

新增Thread Group

开启JMeter後,系统预设会新增一个空白的执行计画,
根据需要测试的内容,在测试计画底下新增一个Thread Group。
https://ithelp.ithome.com.tw/upload/images/20220524/20149099ROQPVmgDXF.png

本次要执行的动作是使用者登入并进入到系统首页,所以将Thread Group命名为登入
https://ithelp.ithome.com.tw/upload/images/20220524/20149099A7Zfd03QMt.png

接下来设定Thread Properties,前三个栏位说明如下:

  • Number of Threads(users):执行测试时,需要多少个使用者
  • Ramp-Up Period (in seconds):在几秒内执行完这个测试
  • Loop Count:重复执行次数

当我们如下图设定时,代表这个测试同时需要100位使用者,
在3秒内执行完登入动作,并且执行1次即可(不重复)。
https://ithelp.ithome.com.tw/upload/images/20220524/20149099rNwYfPhNHr.png

准备测试帐密资料

我们设定这个测试需要由100位使用者同时进行,这时候可以准备一个csv档,
纪录100组测试帐密资料。
https://ithelp.ithome.com.tw/upload/images/20220524/201490996mB4tvNpOz.png

接着在登入Thread Group中,新增CSV Data Set Config。
https://ithelp.ithome.com.tw/upload/images/20220524/20149099oAgsRJ04hD.png

CSV Data Set Config设定如下图。参数说明如下:

  • FileName:CSV档的来源路径。
  • Variable Names:需要从CSV档中取得的变数名称,可以自行命名,後续设定需要使用到CSV中的资料作为变数时,以这个名称做指定。
  • Ignore first line:需不需要忽略CSV档中的第一行,本范例中的CSV档第一行为标题列,所以选择True。

https://ithelp.ithome.com.tw/upload/images/20220524/20149099RMeqmit4sh.png

新增Http Request

在Test Plan中,新增一个Http Request,将这个Http Request命名为登入页面
https://ithelp.ithome.com.tw/upload/images/20220524/20149099wKYtMeV3v5.png

https://ithelp.ithome.com.tw/upload/images/20220524/20149099v6pFgvIirn.png

设定Web Server中的参数,指定要载入的登入页面,本例使用本机环境载入登入页面。设定参数如下图。

  • Protocol[http]:设定目前使用的环境使用的通讯协定,如果是使用非本机环境,请注意该环境是否有使用https,若有的话,本栏位请调整为https。
  • Server Name or IP:只要填写Server IP或domain name即可,例如本机环境填写localhost。
  • HTTP Request:依需求设定POST/GET,Path请填写登入页面的网址。

https://ithelp.ithome.com.tw/upload/images/20220524/20149099GAv3IGD9Vo.png

若测试的系统有设定RequestVerificationToken,
那就需要登入页中RequestVerificationToken的值抓出来一并传送,才能通过登入页防伪验证,
在登入页面新增一个CSS Selector Extractor来抓取。
https://ithelp.ithome.com.tw/upload/images/20220524/20149099DLGzv0uxIC.png

CSS Selector Extractor设定如下图,
可以将登入页中的RequestVerificationToken存到变数RequestVerificationToken中。

  • Name of created variable:变数名称,可以自己命名。
  • CSS Selector expression:要从目标页面中抓取的变数值,要用CSS取值的方式填写。
  • Attribute:要取得的Attribute。

https://ithelp.ithome.com.tw/upload/images/20220524/20149099EeaQ6TSi89.png

接下来在Test Plan中,再新增一个Http Request,
这一个Http Request是用来传送登入资料的,我们将它命名为登入
https://ithelp.ithome.com.tw/upload/images/20220524/20149099gKcE2h9xRd.png

登入页面一样,设定Web Server中的参数,但HTTP Request要设定为POST。
https://ithelp.ithome.com.tw/upload/images/20220524/20149099IxEkGGqTuZ.png

为了让登入可以辨别登入页面传进来的参数值,需要在登入中新增Parameters,
这个范例需要的变数值分别为帐号(Account)、密码(Password)与RequestVerificationToken,如下图设定。
https://ithelp.ithome.com.tw/upload/images/20220524/20149099bepA5cAbcz.png

最後在Test Plan底下加入HTTP Cookie Manager,在登入後执行的动作,
都会继续使用登入时产生的Cookie,以保持登入的状态。
https://ithelp.ithome.com.tw/upload/images/20220524/201490991ZRCaRHP8S.png

进行测试

为了确认测试计画使否有正确执行,以及进行後续的分析,
可以在Test Plan底下新增View Results Tree以及Summary Report。
新增完毕後,将本范例储存为jmx档,才能进行测试。
https://ithelp.ithome.com.tw/upload/images/20220524/20149099KmqvMZhas5.png

点选上方绿色箭头的符号後,测试计画会开始执行,等到执行结束後,
可以切换到View Results Tree页面,确认是否有测试计画正常执行,
若结果都呈现绿色,代表测试计画有执行成功。
https://ithelp.ithome.com.tw/upload/images/20220524/20149099Xwn0t8Q36m.png

https://ithelp.ithome.com.tw/upload/images/20220524/20149099znRXSu8iuq.png

切换到Summary Report,可以检视每一个动作执行的相关数据,例如执行次数、执行时间、错误率等等。
https://ithelp.ithome.com.tw/upload/images/20220524/20149099Hs1UWTKXb1.png


<<:  【基础影像应用篇】DAY6.模型训练流程

>>:  JS [笔记] overflow 致 滑动卡顿不顺畅(IOS)

Nutrition Helper

Nutrition Helper 简介 在现今这个生活步调都非常快速的世代,人们常常忙於工作而忽略掉...

EP14 - 调整架构 EC2 与负载平衡器

昨天我们很有胆试的将 VPC 砍掉重建, 为的就是将网段重新安排, 但是还没处理好的部分, 则是 G...

第 28 集:Bootstrap 客制化 component 元件样式

此篇会介绍如何修改 Bootstrap 元件样式。 事前准备 须先了解变数设置、通用类别设置,再继...

Day 29 - 用 canvas 与 fabricjs 做文件签名(下)

接续 昨天完成了材料建立,今天就用 fabricjs 来做两者的合并 fabricjs 使用 fab...

【Day 07】 在 AWS 中打造出 Data Lake 以及 Data Warehouse

大家好~ 先祝大家中秋节快乐哈哈 昨天我们完成了针对网站的 Google Analytics 的设定...