JMeter(连载5)

简介: JMeter(连载5)

4 电子商务系统的登录模块。


电子商务登录模块包括一个发送到“/login_action/”的POST请求,里面包括usernamepasswordcsrfmiddleware三个字段。


  •  username:登录的用户名
  •  password:登录的密码
  •  csrfmiddlewarecsrf令牌值,一个随机产生的100个长度的由数字字符结合的字符串。


用户名和密码采用参数方式的数据驱动方式。


Csrftoken 是一种防止csrf攻击的方式,它通过发送包中的csrfmiddleware值与cooke中名为csrftoken值进行比较,如果这两个值相等认为不存在csrf攻击,返回200码,否则认为存在csrf攻击,返回403码。


案例9-3:电子商务系统的登录模块。

1HTTP Request调整

  •  使用BadBoy录制完毕,需要在HTTPRequest调整几个地方。
  • Content encoding:录制完毕这里是空的。根据本产品代码格式,设置为utf-8

由于登录完毕产品代码中使用了页面重定性技术,所以在登录完毕的请求页面中勾选Flow Redirects前的方框。如图26所示。


image.png

26 HTTP Request调整


2)用户名密码参数化

采用图16,对用户名和密码进行参数化处理。


3csrftoken破解方法

csrftoken是防止CSRF攻击的一种方法,当每次产生一个HTTP POST请求的时候,产生一个一百个字符长度的随机字符串,这个字符串分别位于表单中名为csrfmiddlewarehidden的字段中以及一个名为csrftokencookie中。当HTTP POST请求传到服务器端,系统会比较名为csrftokencookie的值是否与名为csrfmiddleware的值是不是相等,如果相等则返回200代码,否则返回403代码。如图27所示。


image.png

27 csrftoken原理

查看登录界面HTML代码。


<input type="hidden" name="csrfmiddlewaretoken"value="RKircLHSVaNUYl1YkPZiZRHhwC3L2xnC8HfROOszvmsfZKXUTpE1QZtfLbgrvJNh">


通过“正则表达式提取器”获取HTML代码中的名为csrfmiddlewaretoken的值,即上述代码中的"RKircLHSVaNUYl1YkPZiZRHhwC3L2xnC8HfROOszvmsfZKXUTpE1QZtfLbgrvJNh"。设置正则表达式为“name="csrfmiddlewaretoken"value="(.*?)">”(关于正则表达式希望读者自己通过其他途径学习,本书不做介绍),具体设置见图15所示。获取完毕csrfmiddlewaretoken的值,存在名为csrftoken的变量中,通过HTTP Request传输过去,见图28所示。


image.png

28 设置POST表单数据


同时把获得的参数赋给一个名为csrftokencookie。建立一个HTTP Cookie管理器,如图29所示。


image.png

29建立名为csrftokencookie


通过这样的设置,就可以保证每次请求的csrfmiddleware的值与名为csrftokencookie值保持相等。


4)设置断言

测试完毕,需要判断测试是不是成功。在这里通过最后HTML代码的title值是不是为“电子商务系统”来判断。登录完毕,建立一个正则表达式提取器,如图30来获取HTMLtitle值。


image.png

30获取登录完毕页面的title


获取title完毕,建立“Response Assertion”,设置见图17所示,判断变量title(注意这里要使用变量,而不是值,所以不能用${title})是不是等于(equals)“电子商务系统”。


5)设置“察看结果树”与“DebugSample”跟踪运行

以上设置完毕,建立“察看结果树”和“Debug Sample”,点击即可运行。即可的得到“察看结果树”和“Debug Sample”页面,见图18、图19和图20所示。从图20可以看到变量usernamepasswordtitlecsrftoken的值。


6)设置“事务控制器”、“同步定时器”、“汇总图”并调整“线程组”和“循环控制器”


按图21、图22、图23、图24、图25设置“事务控制器”、“同步定时器”、“汇总图”并调整“线程组”和“循环控制器”。


7)运行测试用例

点击运行测试用例,可在“汇总图”显示当前的运行情况,如图31所示。


image.png

31 “汇总图”显示当前的运行情况


在界面的左上方运行了多少时间,出现了多少错误以及当前有多少在线用户。如图32所示。


image.png

32 运行概况图


具体的运行情况细节可以在“察看结果树”中察看。如图33中所示。


image.png

33 性能测试中的结果树


对于失败原因的细节,可以点击红色的部分,如图34所示。

 

image.png

34 察看失败细节


可见,在这一步csrftoken没有获取到,所以报了一个403返回码,从而造成断言失败。


停止运行点击图标;点击图标将清除结果树中的所有内容;点击图标不仅清除结果树中的所有内容,而且清除图32中的信息。


星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net


顾翔凡言:    

   分子作布朗运动的原因是由于原子、基本粒子也在作布朗运动,所以根本就无法测准粒子的动量与位置。根据狭议相对论E=MC^2,质量与能量是物质的两个属性,基本粒子有质量,与作布朗运动产生能量是一致的。(大物体也在作布朗运动,比如弹球,但由于质量太大,运动范围太小,我们用肉眼看不到)

目录
相关文章
|
4月前
|
Java Linux 测试技术
JMeter 介绍与安装
Apache JMeter 是一款基于Java的开源性能和负载测试工具,常用于测试Web应用、Web服务、数据库及其他网络服务的性能。它具备跨平台特性,支持Windows、Mac及Linux系统,并可通过插件进行扩展。JMeter不仅能模拟大量用户访问以测试服务器承压能力,还适用于接口测试,支持分布式部署与UI及命令行操作模式。
|
监控 Java 测试技术
jmeter使用
jmeter使用
|
JSON 数据挖掘 数据格式
jmeter实用篇
jmeter实用篇
|
SQL 存储 XML
Jmeter之取样器
HTTP请求、调试取样器、JDBC request
|
测试技术
JMeter(连载4)
JMeter(连载4)
89 0
JMeter(连载4)
|
安全 JavaScript 前端开发
JMeter(连载2)
JMeter(连载2)
142 0
JMeter(连载2)
|
XML JSON 算法
JMeter(连载3)
JMeter(连载3)
135 0
JMeter(连载3)
|
数据可视化 测试技术
JMeter笔记15 | JMeter场景运行
JMeter笔记15 | JMeter场景运行
180 0
JMeter笔记15 | JMeter场景运行
|
SQL Java 数据库连接