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测试登陆后进行的操作时 绕过登录的更多相关文章

  1. ECSHOP后台登陆后一段时间不操作就超时的解决方法

    ECSHOP后台登陆后一段时间不操作就超时的解决方法 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2012-05-27   客户生意比较好,因此比较忙,常常不在电脑前 ...

  2. 记一次使用LR测试UDP和TCP的过程

    背景 最近项目要做性能测试,要出要一份性能报告,让我出一个有关Tcp和Udp的功能模块的测试,流程大概是这样,先走TCP协议协商一下会话,协商成功后走Udp收发数据. 有点简单啊,自己写个功能模块测一 ...

  3. 【flask】登陆后返回之前重定向跳转的页面

    登陆后返回之前重定向跳转的页面 一.前言 实现强制跳转到登陆页面,登陆后返回之前的页面的功能.网上跳登陆页面的很多:返回之前页面功能没多少.这里我只是用了自己的方法,有缺点和其他方法也请指点!(´ε` ...

  4. 关于SubSonic3.0插件使用Json反序列化获得的实体进行更新操作时,只能执行添加而不能执行修改(编辑)操作的处理

    由于目前开发的项目使用云计算技术,客户端只进行UI与相关事件的功能开发,而所有的计算与处理都放到了服务器端,客户端与数据库没有任何关联,所以服务器端与客户端使用我们自己开发的通讯加密方式进行,而具体的 ...

  5. 关于有默认值的字段在用EF做插入操作时的思考(续)

    问题描述 今天下午(看现在这时间,应该是昨天下午了哈),园友 choon 写了这样一篇博文<关于有默认值的字段在用EF做插入操作时的思考>. 博文内容主要记录的是 choon 使用 EF ...

  6. php涉及数据库操作时响应很慢。

    症状描述: 网站是php开发的,大部分页面响应很慢. 本地开发时响应速度很快,但是部署到生产环境后大部分响应很慢. 通过谷歌浏览调试发现PHP页面加载很慢,有个别的php请求的响应时间甚至超过10秒, ...

  7. cmd 下登陆ftp及相关操作

    cmd 下登陆ftp及相关操作 2011-08-09 20:34:28|  分类: 小技巧|字号 订阅 一.举例 假设FTP地址为“ 61.129.83.39”(大家试验的时候不要以这个FTP去试,应 ...

  8. dede后台登陆后一片空白的解决办法汇总

    dede后台登陆后一片空白的第一种解决办法: 找到:include/common.inc.php文件,打开,查找程序代码://error_reporting(E_ALL);error_reportin ...

  9. chrome无法登陆账号,显示操作超时的解决方案

    起因 今天重装了下windows操作系统,准备登陆chrome浏览器,以同步各种插件(你懂的),结果是...无法登陆账号,显示操作超时,真是无语了. 碰到了这个问题第一个直觉是:FQ.突然想到如果修改 ...

随机推荐

  1. 【转载】Linux启动过程

    转自:http://cizixs.com/2015/01/18/linux-boot-process 简介 我们都知道:操作系统运行的代码是在硬盘上的,最终要跑到内存和 CPU 上,才能被我们使用. ...

  2. 使用dom4j解析XML文档

    dom4j的包开源包,不属于JDK里面,在myeclipse中要单独导入在项目中,这里不累赘了 做这个过程,很慢,因为很多方法没用过不熟悉,自己得去查帮助文档,而且还得去试,因为没有中文版,英文翻译不 ...

  3. Android应用程序消息处理机制

    http://download.csdn.net/detail/luoshengyang/6439647 pdf

  4. javascript序列化

    JSON.stringify() JSON.parse() toJSON() var person={"cardId":"546651353435"}; con ...

  5. sublime中安装css 格式化插件

    HTML-CSS-JS Prettify解决问题 今天发现此插件依赖于nodejs,如果本机没有安装nodejs,会一直提示你安装,解决方法很简单,直接brew install nodejs即可 看看 ...

  6. 快速的mysql导入导出数据(load data和outfile)

    1.load data: ***实际应用:把日志生成的xls文件load到MySQL中: mysql_cmd = "iconv -c -f utf-8 -t gbk ./data/al_ve ...

  7. Owin是什么?

    OWIN的英文全称是Open Web Interface for .NET. 如果仅从名称上解析,可以得出这样的信息:OWIN是针对.NET平台的开放Web接口. 那Web接口是谁和谁之间的接口呢?是 ...

  8. js使用split函数按照多个字符对字符串进行分割的方法

    这篇文章主要介绍了js使用split函数按照多个字符对字符串进行分割的方法,实例分析了split函数的使用技巧,非常具有实用价值,需要的朋友可以参考下   本文实例讲述了js使用split函数按照多个 ...

  9. Source Insight 基本使用(2)-修改Source Insight 快捷键

    1. 首先,打开source insight主界面. 2. 选择"options->key assignments",进入快捷键设置界面. 3. 此时,可以看到快捷键设置对话 ...

  10. strtol,strtoll,strtoul, strtoull字符串转化成数字

      今天看kafka,有一个参数选项中有: 'S'   seq=strtoull(optarg,NULL,10); do_seq=1; 之后查找了下 strtoull 函数的功能,了解如下: ---- ...