51Testing软件测试论坛

标题: 急,silkperformer问题教,如何处理session [打印本页]

作者: testlike    时间: 2007-7-3 14:33
标题: 急,silkperformer问题教,如何处理session
脚本中有多个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处理好的脚本上传给我看看
作者: cnpc1234    时间: 2007-7-12 12:25
对于session的处理通常使用参数变量将其替换的方法解决。
作者: testlike    时间: 2007-7-12 15:06
标题: 回复 #2 cnpc1234 的帖子
可以把 sessionid到变量,可是BDL脚本里没有看到sessionid怎么用变量替换呢
作者: testlike    时间: 2007-7-12 15:08
标题: 这是同一个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 编辑 ]
作者: ziheng198688    时间: 2009-9-28 15:18
SP的对不同tranaction的处理相当于关闭IE后重新打开IE 在第一个transaction中取得的session在第二个transaction会丢失 所以楼主将transaction合并起来运行就没有问题

楼主可以尝试将两个语句写在同一个transaction中,或者将第一个transaction取得的session存储在全局变量中
作者: asks_zhuang    时间: 2009-9-29 00:43
标题: webcookieget,webcookietset函数
要理解下silkperformer里面的transcation.
每一个transaction都相当于关闭,然后重新打开IE,即浏览器,那么肯定是没有session了.
比如把登陆和 选择商品的动作分别在两个transaction中,那么选择商品的transaction就没有登陆session,无法使用.
解决方法就是在登陆成功后,用webcookieget把session取得,保存在变量中.
在选择商品的trans里面,开头部分用webcookieset重新赋予session.

另,session是服务器端的,在客户端时当作cookie处理的)
作者: gjay1688    时间: 2009-9-29 10:36
cookie失效了,重新获取...,可以重新record可以看到新的transaction那里有新的cookies,在那个位置自己再动态获取一下就ok了




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2