51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4637|回复: 12
打印 上一主题 下一主题

[原创] LR中如何编程得到Cookies的值

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-11-10 17:38:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
各位:
    如何在LR中编程得到Cookies的值?找了帮助文档,没有找到!~~寒...
   
   请知道的高人给个实例,谢谢!~~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

13#
发表于 2010-11-18 12:49:37 | 只看该作者
回复 12# flyven


    很好的摘要 谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2010-11-18 12:03:44 | 只看该作者
网上摘录的:


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.do?action=Index", "Mode=HTML", "RecContentType=text/html", LAST ); return 0; } 最后注明一下:loadrunner 的 web 录制功能是自动的增加 cookie 的,只要在 cookie 不过期的情况下,我 们不需要手工的增加 cookie,当出现录制不上或录制的值发生变化时可以手工进行添加. 在 loadrunner 场景设计使用其他负载机器时,同样可以使用你本机的这个 cookie 值进行,不会因为客户 端机器发生变化而产生影响.
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2010-11-18 11:26:02 | 只看该作者
回复 3# 看雪时节


    那每次访问页面后马上清除cookies呢?
是不是
web_clear_cookie("SID=514638_28edabc9; DOMAIN=www.****.com");
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2009-5-5 17:17:39 | 只看该作者

我理解的sid

你要这个值干什么   这种值应该像是系统加密处理之后给的值吧   如果你不知道系统是如何加密的  你是不可能得到它本来最真实的值的 就像mysql数据库中对密码的加密一样   你也是看不到的  但是在mysql中是有办法把它还原出来的  是通过修改mysql配置文件修改得来的  但mysql中加密具体是怎么样的   我们都是不知道的
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2008-11-11 17:32:35 | 只看该作者
原帖由 断寒 于 2008-11-11 16:48 发表
我以前也碰到过这种问题,
不过是这个ID在我之后的脚本中间有遇到相同的SID,所以必须得获取到.
这个ID在一开始IE打开登陆系统页面的时候APP会返回给我,我当时是这个情况.
我是觉得只要录制的时候能获取的,那么在关 ...



不太明白你的意思啊!~~能否提供个实例啊?有这部分的代码吗?不好意思,初学!~~
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-11-11 16:50:09 | 只看该作者
对于lr来说
   web_add_cookie("SID=514638_28edabc9; DOMAIN=www.****.com");
web_add_cookie是客户端发给服务器端的内容,而且是事先写死的,所以。。。lr是没办法处理的,除非有人写dll
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-11-11 16:48:43 | 只看该作者
我以前也碰到过这种问题,
不过是这个ID在我之后的脚本中间有遇到相同的SID,所以必须得获取到.
这个ID在一开始IE打开登陆系统页面的时候APP会返回给我,我当时是这个情况.
我是觉得只要录制的时候能获取的,那么在关联的时候总能获取的到.
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2008-11-11 16:34:12 | 只看该作者

回复 5# 的帖子

是啊,帮助里就这么几个function,并没有取值的方法!~~
我想取值的问题别人肯定还会遇到吧!~~
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2015-11-17 09:09
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]测试连长

    5#
    发表于 2008-11-11 15:20:10 | 只看该作者
    帮顶!貌似取不到
    Note: scripts do not use (access or modify) the cookies that are stored by your browser. Instead, each script uses the cookies that are sent to the Vuser by the server host at runtime. These cookies are maintained only temporarily while the script runs. The web–cookie functions (web_add_cookie, web_add_cookie_ex, web_remove_cookie, and web_cleanup_cookies) manipulate these temporary cookies only.
    The intended use of web_add_cookie is to add cookies usually stored in the browser, prior to starting the run.

    期待高手写个dll之类的,可以在运行时读取到该cookie。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2008-11-11 13:33:30 | 只看该作者
    别让我的帖沉了啊!~~
    各位难道没有同样的问题吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2008-11-11 10:54:44 | 只看该作者

    回复 2# 的帖子

    Hi:
       web_add_cookie("SID=514638_28edabc9; DOMAIN=www.****.com");
    我想得到SID中的值,不知该怎么做?有什么方法函数吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2008-11-10 21:09:26 | 只看该作者
    你要得到cookie的什么?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-27 11:27 , Processed in 0.077798 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表