LR测试登陆后进行的操作时 绕过登录
oadrunner web_add_cookie
web_add_cookie 这个的函数原来真的能过逃过登录,哈哈,这个苦苦纠结我的问题呀。
函数原型:int web_add_cookie( const char *Cookie);
其中 cookie参数列表格式添加如下:
Defines the cookie to add or modify. The Cookie parameter has the following format:
name=VALUE; (required) //需要添加的cookie变量名=变量值,必须有
domain=DOMAIN_NAME; (required) 需要cookie的域名,必须有
expires=DATE; 失效日期 可以可无,最好有。又错了,该字段是根据服务端设置的,服务端设置可以保存多长时间,就保存多长时间,Lr在模拟时该时间一般要在服务端允许的时间范围内,但是不在范围内好像也不报错,估计也不会有用,有的cookie是根据session来的,比如截图中的cookie有效期为end of session,意思就是session死了,cookie也就失效了,所以你设置再长时间也没有用啦。
path=PATH; (default path is "/") cookie路径,默认是当前路径还是根目录呀?这个/目录到底是哪里呢?都不是,该path路径的意思是cookie的适应范围,/代表该cookie从该程序的根目录起适用。这个也是要根据服务端设置来的,看截图的path路径为/,表示呀该cookie从该应用的根目录开始适用,lr中按照此设置即可,当然也可以设置成根目录以下的目录,可是你客户端怎么知道根目录以下还有哪些目录呢?哈哈,所以这能照抄服务端返回的目录啦。
使用办法,在firefox浏览器中运行一次实际的登录过程,登录过程中开启httpfox插件,获取接受到的cookies各个字段的值,然后加到lr的初始化里(vuser_init()),绕过登录。
代码如下:
web_add_cookie ("tonido-login-seed-10001=588831e0-2d20-43bf-8aad-979590571e68; path=/; expires=Wednesday, 09–Nov–2011 23:12:40 GMT; domain=kortide.tonidoid.com");
web_add_cookie ("tonido-login-hash-10001=df420fa77e1facf1c5ad1d3de3b5ee007bffcf09; path=/; expires=Wednesday, 09–Nov–2021 23:12:40 GMT; domain=kortide.tonidoid.com");
web_add_cookie ("tonido-login-user-10001=kortide@tonidoid.com; path=/; expires=Wednesday, 09–Nov–2011 23:12:40 GMT; domain=kortide.tonidoid.com");
参数里的name,value,path,domain的值都是可以直接从httpfox中获取到的,至于expires你可以随便写,只要是未来时间即可。具体可看截图哈。
添加完cookie后,那些需要登录后才能进行的操作,再也不用登录后再操作了,因为登录实在是太消耗时间了,测试时遇到tonidoid只能同时登录5个用户的限制,我想做超过5个用户的并发场景,一直模拟不出来,这下应该能解决了,一会试试。
千真万确,解决了,哈哈。
http://tbaike.com/index.php?category-view-6.html 一个测试类的网站
又尝试写了一个函数自动获取页面换回的cookie:
int login(char cookies[10][100] )
{
char cookie[50]; // The formatted value of outFlightParam
int len,i;
web_reg_save_param("cookie",
"LB=Set-Cookie:",
"RB=HttpOnly",
"ORD=ALL",
"Search=headers",
LAST);
web_custom_request("loginprofile",
"URL=http://url",
"Method=POST",
"Resource=0",
"RecContentType=text/xml",
"Mode=HTML",
"EncType=text/plain; charset=utf-8",
"Body=profile={profile}&safemode=0&autologin=1&password={password}",
LAST);
len=atoi(lr_eval_string("{cookie_count}"));
for (i=1;i<=len;i++) {
sprintf(cookie,"{cookie_%d}",i);
sprintf(cookies[i-1],"%s",lr_eval_string(cookie));
lr_output_message("cookies %s",cookies[i-1]);
}
结果ok~~
包含cookie的头一般如下:
(Status-Line) HTTP/1.1 200 OK
Cache-Control private, no-cache, no-store, proxy-revalidate
Connection Close
Content-Length 102
Content-Type text/xml; charset=utf-8
Date Tue, 23 Aug 2011 06:10:10 GMT
Pragma no-cache
Set-Cookie tonido-login-seed-10001=fee60fe9-a70d-4936-aeac-64f27fdc21a2; path=/; HttpOnly
Set-Cookie tonido-login-hash-10001=9a82fb6088db8b05fa4e6f6b973c28d02383c954; path=/; HttpOnly
Set-Cookie tonido-login-user-10001=kortide@tonidoid.com; path=/; HttpOnly
LR测试登陆后进行的操作时 绕过登录的更多相关文章
- ECSHOP后台登陆后一段时间不操作就超时的解决方法
ECSHOP后台登陆后一段时间不操作就超时的解决方法 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2012-05-27 客户生意比较好,因此比较忙,常常不在电脑前 ...
- 记一次使用LR测试UDP和TCP的过程
背景 最近项目要做性能测试,要出要一份性能报告,让我出一个有关Tcp和Udp的功能模块的测试,流程大概是这样,先走TCP协议协商一下会话,协商成功后走Udp收发数据. 有点简单啊,自己写个功能模块测一 ...
- 【flask】登陆后返回之前重定向跳转的页面
登陆后返回之前重定向跳转的页面 一.前言 实现强制跳转到登陆页面,登陆后返回之前的页面的功能.网上跳登陆页面的很多:返回之前页面功能没多少.这里我只是用了自己的方法,有缺点和其他方法也请指点!(´ε` ...
- 关于SubSonic3.0插件使用Json反序列化获得的实体进行更新操作时,只能执行添加而不能执行修改(编辑)操作的处理
由于目前开发的项目使用云计算技术,客户端只进行UI与相关事件的功能开发,而所有的计算与处理都放到了服务器端,客户端与数据库没有任何关联,所以服务器端与客户端使用我们自己开发的通讯加密方式进行,而具体的 ...
- 关于有默认值的字段在用EF做插入操作时的思考(续)
问题描述 今天下午(看现在这时间,应该是昨天下午了哈),园友 choon 写了这样一篇博文<关于有默认值的字段在用EF做插入操作时的思考>. 博文内容主要记录的是 choon 使用 EF ...
- php涉及数据库操作时响应很慢。
症状描述: 网站是php开发的,大部分页面响应很慢. 本地开发时响应速度很快,但是部署到生产环境后大部分响应很慢. 通过谷歌浏览调试发现PHP页面加载很慢,有个别的php请求的响应时间甚至超过10秒, ...
- cmd 下登陆ftp及相关操作
cmd 下登陆ftp及相关操作 2011-08-09 20:34:28| 分类: 小技巧|字号 订阅 一.举例 假设FTP地址为“ 61.129.83.39”(大家试验的时候不要以这个FTP去试,应 ...
- dede后台登陆后一片空白的解决办法汇总
dede后台登陆后一片空白的第一种解决办法: 找到:include/common.inc.php文件,打开,查找程序代码://error_reporting(E_ALL);error_reportin ...
- chrome无法登陆账号,显示操作超时的解决方案
起因 今天重装了下windows操作系统,准备登陆chrome浏览器,以同步各种插件(你懂的),结果是...无法登陆账号,显示操作超时,真是无语了. 碰到了这个问题第一个直觉是:FQ.突然想到如果修改 ...
随机推荐
- HDU 1811 Rank of Tetris(拓扑排序+并查集)
题目链接: 传送门 Rank of Tetris Time Limit: 1000MS Memory Limit: 32768 K Description 自从Lele开发了Rating系统, ...
- Nginx反向代理tomcat
location /gm { root html; proxy_pass http://localhost:8080/gm; proxy_set_hea ...
- Beta版本冲刺第六天 12.12
一.站立式会议照片: 二.项目燃尽图: Android端 后台 三.项目进展: 成 员 昨天完成任务 今天完成任务 明天要做任务 问题困难 心得体会 胡泽善 邮箱验证和用户评价的填写 用户评价的查看以 ...
- 基于UDP协议的程序设计
使用UdpClient类进行编程 UdpClient类的使用方法 第一阶段 创建UdpClient实例 UdpClient udpClient = new UdpClient(); IPAddress ...
- 用LinkedList模拟栈数据结构的集合
用Eclipse软件进行操作 有2种方法,左边为第一种,右边为第二种 创建class为MyStack 代码实现: package cn_LinkedList; import java.uti ...
- Java——字符集:Charset
- Java——URL和URLConnection
使用URL读取内容 import java.awt.im.InputContext; import java.io.InputStream; import java.net.MalformedURLE ...
- SQL DatePart函数使用
DATEPART 返回代表指定日期的指定日期部分的整数. 语法 DATEPART ( datepart ,date ) 参数 datepart 是指定应返回的日期部分的参数.下表列出了 Microso ...
- Mac截图快捷键
Shift+Command+3 截取全屏幕至桌面 Shift+Command+4 截取部分屏幕至桌面 Shift+Command+4+空格 截取窗口或原件至桌面 Shift+Command+4 然后E ...
- XStream使用总结
最近做webService报文转换的公共接口使用到了XSream工具库,写个小总结备忘... XStream是一个可以将javaBean与XML双向转换的java类库,本文内容基于xstream-1. ...