• 使用cookie绕过登录进行性能测试


    LR 使用 web_add_cookie 函数进行 cookie 模拟

    1 为什么要使用 cookie 模拟 从日常项目测试过程中的问题说起. 比如要进行论坛中的文件下载功能的 测试. 我们都知道只有登录用户才能进行下载操作,这样我们的测试过程可能就变成了先登录系统,然后再 进行下载操作.在使用 loadrunner 设计脚本时就要先在初始化部分写登录脚本,然后再 action 中写下载操 作,当单个用户运行时我们可能看不到什么问题.当用户并发量较多时,问题马上暴露出来了.大部分用户可能 很长时间也没有下载成功,大量的初始化登录操作已经给系统造成了很大的压力,而在日常访问中, 这种大 量短时间登录的压力是不容易出现的. 这样的测试结果可能无法达到我们的测试目标. 的确,不能处理较大 的登录吞吐可能已经是系统的瓶颈了,我们可以通过这种全流程的测试方式发现 登录的问题.但是后续的测 试我们可能就无法进行下去了.当项目组解决了登录的吞吐问题时,可能项目 工期已经十分紧张了,再进行 重要的下载功能测试可能已经太晚了. 这种情况在测试过程中经常会出现,我们要如何绕过登录尽早的进行 后续的下载操作呢如果网站使用了 cookie 的机制,则我们可以尝试使用下面的方法.

    2 怎么使用 loadrunner 模拟 Loadrunner 的 web 函数中提供了几个关于 cookie 的函数. web_remove_cookie() web_add_cookie() web_cleanup_cookies(); web_reg_add_cookie(); 这里我们为 了模拟 cookie 绕过登录使用 web_add_cookie(); 首先获取网站留在客户端上的 cookie 都存储了什么. 通常主要内容包括名字,值,过期时间,作用域和路 径,分为会话 cookie 和文件 cookie.会话 cookie 存储在 内存里,关闭浏览器后就没有了,这种很难模拟. 文件 cookie 是将 cookie 信息写到硬盘上,关闭浏览器再次打开后仍可以使用.我们要模拟的就是这种存 储在硬盘文件里的 cookie. 我们观察 cookie 文件的内容, 如果使用 ie 的话, 在"C:\Documents and Settings\ 用户名\Local Settings\Temporary Internet Files"中的 用户名@域名的文件里,cookie 存储都是加密的,所以我们直接看并看不出什么特别的东西,也搞不清楚具 体是什么.这时我们借助 IE webdeveloper 工具获取 cookie 值如下所示: cdb_cookietime=2592000;cdb_smile=1D1; cdb_sid=71WKOd; cdb_auth=TzsVl16XRFahjqkfuWyoF5OzI%2BrekHgiy0YXJd8m1y9vq6aV4bg3GGMsa9s; cdb_visitedfid=20; cdb_onlineusernum=28 获得了 cookie 信息后,我们进行编辑 loadrunner 脚本.将 cookie 每个分号分行,使用 UltraEdit 进行列模 式操作,在每句后面加上域名.(域名在 webdeveloper 的 Attributes 下也可以找到 domain 对应值),修 改完成后如下. web_add_cookie("cdb_cookietime=2592000;domain=172.16.1.3"); web_add_cookie("cdb_smile=1D1;domain=172.16.1.3"); web_add_cookie("cdb_sid=71WKOd;domain=172.16.1.3"); web_add_cookie("cdb_auth=TzsVl16XRFahjqkfuWyoF5OzI%2BrekHgiy0YXJd8m1y9vq6aV4bg3GGMs a9s;domain=172.16.1.3"); web_add_cookie("cdb_visitedfid=20;domain=172.16.1.3"); web_add_cookie("cdb_onlineusernum=28; domain=172.16.1.3"); 把这些值放在要访问的 url 的 web 函数之前,你就可以绕过登录进行后续操作了. 如: Action() { web_add_cookie("cdb_cookietime=2592000;DOMAIN=172.16.1.3"); web_add_cookie("cdb_smile=1D1;DOMAIN=172.16.1.3"); web_add_cookie("cdb_oldtopics=D280D39523D39418D;DOMAIN=172.16.1.3"); web_add_cookie("cdb_sid=eSuWgw;DOMAIN=172.16.1.3"); web_add_cookie("cdb_auth=TzsVl16XRFahjqkfuWyoF5OzI%2BrekHgiy0YXJd8m1y9vq6aV4bg3GGMs a9s;DOMAIN=172.16.1.3"); web_add_cookie("cdb_visitedfid=20;DOMAIN=172.16.1.3"); web_url("cookies", "URL=http://172.16.1.3:8080/bbs/index.php", "referer=http://172.16.1.3/newiweb/index/dealIndex.doaction=Index", "Mode=HTML", "RecContentType=text/html", LAST ); return 0; } 最后注明一下:loadrunner 的 web 录制功能是自动的增 加 cookie 的,只要在 cookie 不过期的情况下,我 们不需要手工的增加 cookie,当出现录制不上或录制的 值发生变化时可以手工进行添加. 在 loadrunner 场景设计使用其他负载机器时,同样可以使用你本机的这 个 cookie 值进行,不会因为客户 端机器发生变化而产生影响.

     不抓cookie的方法有很多比如使用httpwatch 记录登录的操作过程


  • 相关阅读:
    网上Silverlight项目收集
    在Silverlight页面里显示HTML的免费控件下载(附使用方法代码)
    Silverlight SNS项目
    Visual Studio 2010下的RIA开发,Silverlight 4线下技术交流会期待您的参与!
    Windows7硬件展示与客户端信息收集
    Silverlight版的神奇罗盘,仿Google的Flash神奇罗盘
    (解题思路)Entity Framework 如动态创建表或者列
    (学)这些年来的几宗罪
    (学)在SQL2005中使用分区表技术
    (医)有痔青年的福音
  • 原文地址:https://www.cnblogs.com/bugua/p/2724069.html
Copyright © 2020-2023  润新知