前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JMeter(连载5)

JMeter(连载5)

作者头像
顾翔
发布2019-12-12 13:05:28
4500
发布2019-12-12 13:05:28
举报

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

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

l username:登录的用户名

l password:登录的密码

l csrfmiddleware:csrf令牌值,一个随机产生的100个长度的由数字字符结合的字符串。

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

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

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

(1)HTTP Request调整

l 使用BadBoy录制完毕,需要在HTTPRequest调整几个地方。

l Content encoding:录制完毕这里是空的。根据本产品代码格式,设置为utf-8。

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

图26 HTTP Request调整

(2)用户名密码参数化

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

(3)csrftoken破解方法

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

图27 csrftoken原理

查看登录界面HTML代码。

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

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

图28 设置POST表单数据

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

图29建立名为csrftoken的cookie

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

(4)设置断言

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

图30获取登录完毕页面的title

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

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

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

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

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

(7)运行测试用例

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

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

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

图32 运行概况图

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

图33 性能测试中的结果树

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

图34 察看失败细节

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

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

星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试培训 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4 电子商务系统的登录模块。
    • 案例9-3:电子商务系统的登录模块。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档