51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4829|回复: 6
打印 上一主题 下一主题

急,silkperformer问题教,如何处理session

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-7-3 14:33:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
脚本中有多个trasaction,in-hdr中的内容:
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.1
Date: Tue, 03 Jul 2007 06:04:31 GMT
Connection: close
X-Powered-By: PHP/5.1.2
Set-Cookie: PHPSESSID=e1700357849ec03a2cb2de7b948d88d2; expires=Wed, 04 Jul 2007 09:51:10 GMT; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
在第一个事务中用WebCookieGet(sessionno,STRING_COMPLETE,"http://192.168.61.83/index.php");获取了cookies的内容
在第二个事务开始用WebCookieSet(ssessionid,"http://192.168.61.83/lib/testcases/listTestCases.php?feature=tcEdit");
   可是脚本还是调不通,不知道哪错了,合在一个transaction就可以,请大家指教,或者有session处理好的脚本上传给我看看
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-7-12 12:25:18 | 只看该作者
对于session的处理通常使用参数变量将其替换的方法解决。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-7-12 15:06:49 | 只看该作者

回复 #2 cnpc1234 的帖子

可以把 sessionid到变量,可是BDL脚本里没有看到sessionid怎么用变量替换呢
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-7-12 15:08:33 | 只看该作者

这是同一个transaction的,我想把登陆和操作分开就不行了

原文如下:
//------------------------------------------------------------
// Recorded 01/03/2007 by SilkPerformer Recorder v7.4.0.2776
//----------------------------------------------------------------------

benchmark SilkPerformerRecorder

use "WebAPI.bdh"

dclparam
  sParseDataVar1    : string;

dcluser
  user
    VUser
  transactions
    TInit           : begin;
    TMain           : 1;

var

dclrand

dcltrans
  transaction TInit
  begin
    WebSetBrowser(WEB_BROWSER_MSIE6);
    WebModifyHttpHeader("Accept-Language", "zh-cn");
    //WebSetUserBehavior(WEB_USERBEHAVIOR_FIRST_TIME);
    //WebSetDocumentCache(true, WEB_CACHE_CHECK_SESSION);
  end TInit;

  transaction TMain
  var
  begin
    WebCookieSet("lastProductForUser23=4; domain=192.168.61.112; path=/; expires=Tue, 03 Jan 2017 06:56:14 GMT",
      "http://192.168.61.112/");
    WebPageParseUrl("Javascript Redirection in page Unnamed page", "href='", "'", WEB_FLAG_IGNORE_WHITE_SPACE);
    WebPageUrl("http://192.168.61.112/", "Unnamed page");

    WebPageAddUrl("gui/css/tl_login.css");
    WebPageAddUrl("gui/css/tl_print.css");
    WebPageLink("Javascript Redirection in page Unnamed page", "TestLink - Login");

    WebPageParseUrl("Javascript Redirection in page index.php", "href='", "'", WEB_FLAG_IGNORE_WHITE_SPACE);
    ThinkTime(7.0);
    WebParseDataBoundEx(sParseDataVar1, STRING_COMPLETE, "PHPSESSID=", 1, ";",
      WEB_FLAG_IGNORE_WHITE_SPACE | WEB_FLAG_CASE_SENSITIVE | WEB_FLAG_HEADER_ONLY, 1);
    WebPageSubmit("Login", LOGIN001, "index.php"); // Form 1
    Print("sParseDataVar1: " + sParseDataVar1);

    WebPageAddUrl("gui/css/testlink.css");
    WebPageAddUrl("icons/navbar.gif");
    WebPageLink("Javascript Redirection in page index.php", "TestLink 1.6.2"); // Link 1

    WebPageAddUrl("/third_party/phplayersmenu/layerstreemenu-hidden.css");
    WebPageAddUrl("/third_party/phplayersmenu/menuimages/tree_expand_corner_first.png");
    WebPageAddUrl("/third_party/phplayersmenu/menuimages/tree_folder_closed.png");
    WebCookieSet("phplm_expand=; domain=192.168.61.112; path=/; expires=Tue, 03 Jan 2017 06:56:27 GMT",
      "http://192.168.61.112/third_party/phplayersmenu/menuimages/tree_expand_corner.png", 3);
    WebCookieSet("phplm_collapse=1|2|3|; domain=192.168.61.112; path=/; expires=Tue, 03 Jan 2017 06:56:27 GMT",
      "http://192.168.61.112/third_party/phplayersmenu/menuimages/tree_expand_corner.png", 3);
    WebPageAddUrl("/third_party/phplayersmenu/menuimages/tree_expand_corner.png");
    ThinkTime(3.8);
    WebPageLink("测试规范", "TestLink Inner Frame", 1, "titlebar"); // Link 3

    ThinkTime(6.6);
    WebPageLink("用户管理", "TestLink", 1, "titlebar"); // Link 4

    ThinkTime(3.0);
    WebPageLink("修改用户", "TestLink (#1)", 1, "mainframe"); // Link 7

    ThinkTime(5.5);
    WebPageLink("删除用户", "TestLink (#2)", 1, "mainframe"); // Link 8

    ThinkTime(2.6);
    WebPageLink("用户手册", "User Manual", 1, "titlebar"); // Link 6
  end TMain;

dclform
  LOGIN001:
    "login"                     := "admin", // changed
    "password"                  := Decrypt("5ERzHMY="), // changed
    "submit"                    := "" <USE_HTML_VAL> ; // unchanged, value: "Login"

[ 本帖最后由 testlike 于 2007-7-12 15:09 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-9-28 15:18:37 | 只看该作者
SP的对不同tranaction的处理相当于关闭IE后重新打开IE 在第一个transaction中取得的session在第二个transaction会丢失 所以楼主将transaction合并起来运行就没有问题

楼主可以尝试将两个语句写在同一个transaction中,或者将第一个transaction取得的session存储在全局变量中
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-9-29 00:43:23 | 只看该作者

webcookieget,webcookietset函数

要理解下silkperformer里面的transcation.
每一个transaction都相当于关闭,然后重新打开IE,即浏览器,那么肯定是没有session了.
比如把登陆和 选择商品的动作分别在两个transaction中,那么选择商品的transaction就没有登陆session,无法使用.
解决方法就是在登陆成功后,用webcookieget把session取得,保存在变量中.
在选择商品的trans里面,开头部分用webcookieset重新赋予session.

另,session是服务器端的,在客户端时当作cookie处理的)
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2009-9-29 10:36:00 | 只看该作者
cookie失效了,重新获取...,可以重新record可以看到新的transaction那里有新的cookies,在那个位置自己再动态获取一下就ok了
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-15 11:04 , Processed in 0.072435 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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