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%2BrekHgiy0YXJd8m1y9vq6aV4bg3GGMsa9s;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%2BrekHgiy0YXJd8m1y9vq6aV4bg3GGMsa9s;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值进行,不会因为客户端机器发生变化而产生影响。
分享到:
相关推荐
7. **Cookie函数**: - `web_add_cookie`:添加或修改Cookie,模拟用户会话。 - `web_cleanup_cookies`:删除所有Vuser存储的Cookie。 - `web_remove_cookie`:删除指定的Cookie。 8. **联动函数**: - `web_...
`web_add_cookie`用于添加新的cookie,`web_cleanup_cookies`用于清除所有cookies,而`web_remove_cookie`则用于删除特定的cookie。 #### 19. web_create_html_param 和 web_create_html_param_ex 这两个函数用于...
LoadRunner 脚本录制 LR 录制网页上下载附件 LoadRunner 是一款强大的性能测试...* 使用 web_add_cookie 函数来添加 Cookie 通过 LoadRunner 的录制网页上下载附件,可以提高应用程序的性能和可靠性,提高用户体验。
LR函数是LoadRunner中用于构建脚本的核心部分,它们帮助测试人员模拟真实的用户行为并记录、回放和分析系统响应。 1. **LR函数类型** LR函数分为VU(Virtual User)全局函数、行动(Action)函数和通用函数等几大...
7. **Cookie函数**: - `web_add_cookie`:添加或修改Cookie。 - `web_cleanup_cookies`:删除Vuser存储的所有Cookie。 - `web_remove_cookie`:删除指定的Cookie。 8. **联动函数**: - `web_create_...
7. **Web_add_cookie()**:添加或更新HTTP Cookie,模拟浏览器的行为。 8. **Web_set_sockets_option()**:设置网络套接字选项,如超时、重试次数等,以优化网络通信。 9. **TRumbaStep()**:TRunmbaStep系列函数...
4. **Cookie管理**:如web_add_cookie()添加Cookie,web_remove_cookie()删除Cookie,用于模拟浏览器的Cookie行为。 三、函数文档的重要性 LoadRunner的函数文档不仅是开发Vuser脚本的指南,更是解决实际问题的...
3. **Web_add_cookie**:管理HTTP会话中的Cookie,确保会话的正确性。 4. **Web_set_sockets_option**:设置网络套接字选项,如超时时间、重试次数等。 5. **LR_start_transaction** 和 **LR_end_transaction**:...
以上就是LoadRunner函数中文翻译系列之2--Check的主要内容,包括`web_find`、`web_global_verification`、`web_image_check`以及`web_reg_add_cookie`四个函数的详细介绍及其应用场景。通过这些函数,LoadRunner能够...
在该脚本中,使用了 web_reg_find()函数和 web_image_check()函数来查找相应的内容,并使用 atoi()函数和 lr_eval_string()函数来判断查找内容出现的次数是否大于 0。 Loadrunner 检查点是一种功能强大且灵活的工具...
- **添加Cookie**:`web_add_cookie`函数用于向请求中添加Cookie,这对于保持用户会话至关重要。例如: ``` web_add_cookie("Yigo.MAP_DOM_SID=d2ca7c34-b118-46f6-a4c5-0edf9c9b2f08%7Ccqoa%7C403106;DOMAIN=...
LR函数解析则深入探讨了LoadRunner支持的各种函数,包括Web函数、FTP函数、数据库函数等。函数是构建脚本的基础,它们用于模拟用户的实际操作。例如,Web_add_cookie用于处理cookie,HTTPosti用于发送HTTP POST请求...
LoadRunner作为一款性能测试工具,提供了丰富的函数库来模拟用户的交互行为,以便于进行各类Web、FTP、邮件等场景的测试。以下是对几个关键类别的函数进行详细介绍: #### Web相关函数 1. **web_custom_request**...
4. **脚本开发**:Java Vuser脚本主要由LR API(LoadRunner API)调用组成,开发者需要理解如Web_add_cookie, Web_url, Web_submit_data等函数的用法。 5. **逻辑控制与数据驱动**:在脚本中,可以通过Java控制结构...
常见的脚本操作包括Web_custom_request、Web_url、Web_add_cookie等。开发者可以利用LR API进行更复杂的交互。 【LoadRunner性能指标】 1. **响应时间**:衡量系统处理请求的速度,包括网络传输时间、服务器处理...
1. Vuser脚本主要基于C语言,但提供了一些预定义的函数库,如Web协议库(Web_add_cookie, Web_url等)。 2. LR支持多种协议,如HTTP/HTTPS、FTP、Java、Oracle数据库等,每种协议对应不同的库函数。 五、LoadRunner...