• SilkTest Q&A 10


    92. 如何把单个表达式分两行来写?

    答案1: 使用Shift + Enter

    答案2: 很容易在online help里面找到答案:

    1)      line break in code

    2)      line continuation character.

     

     

    94. 我想设置run time的current path

    我要设置run time 的current path,意味着如果我有一个脚本*C:/SilkTest*/XYZ.pln,在初始化函数中,我需要设置路径为*C:/Silktest*, 如何在SilkTest中做到这点?

    答案:试试操作CurrentPath这个变量。

     

    95. SilkTest中的.vtp文件是干什么的?

    答案:.vtp是项目文件,请参考帮助以了解更多。

     

    96. 我如何能在SilkTest中使用超过一种浏览器,假如我要使用3种浏览器,这种情况下应该如何写脚本呢?

    答案:使用IE和Netscape是非常类似的,不过你不得不在tag上作一些改变。

     

    97. .OPT文件是用来做什么的?

    答案:.opt文件用来设置option

    假如你在script中设置了下面的option

    Agent.SetOption (OPT_WINDOW_TIMEOUT, 5)
    Agent.SetOption (OPT_WINDOW_RETRY, 0.06)
    Agent.SetOption (OPT_KEYBOARD_DELAY, 0.3)

    .....
    .....

    只有少数option你可以在script里面…如果你想设置更多的option,最好是把它们设在.opt文件中,然后use这些.opt文件…

    上面的例子是for Agent option的….还有一些option事必须设置在.opt文件中的,例如:General,Runtime的option

     

     

    98. 怎么得到网页的内容?(比如:yahoo首页)

     

    答案:

    BrowserPage.SetActive ()
    Clipboard.SetText ()
    BrowserPage.TypeKeys ("")
    BrowserPage.TypeKeys ("")
    list of string lsText = Clipboard.GetText ( ) // 保存浏览器页面内容

     

     

    99. 请解释如何用SilkTest做数据驱动测试

    答案:

    1)      新建一个.xls文件,里面包含了会被脚本请求的数据,例如用户名和密码

    2)      在silktest中选择workflow为data driven

    3)      选择Data Driven Test Case(在你建立了自己的testcase之后),按照向导选择你刚刚建立的.xls数据表文件。这会自动为你建立DSN。接下来要求输入名字的地方都用默认的设置即可。

    4)      在你的脚本中编写代码,例如:

    [CODE]
    testcase DataDrivenExample () appstate DefaultBaseState
    [ ]
    [ ] Browser.Maximize()
    [ ]
    [ ] // If the Logon page is not displayed Load it.
    [-] if (!LoginPage.Exists())
    [ ] Browser.LoadPage("{kProtocol}://{kwebServer}:{kPort}/logon.jsp")
    [ ]
    [ ] LoginPage.LoginUser (User, Password)
    [ ] ApplicationHome.Exists(kPageTimeOut)
    [ ] ApplicationHome.SetActive()
    [/CODE}
    然后,高亮选择你的变量User,比如,在替换面板第一个下拉列表中,选择你的UserName列(已经自动链接到你的xls表了),然后选择替换,为其他你需要替换的数据做同样的事情。注意, DATA DRIVEN ASSISTANT SECTION是自动生成的代码。这是一个快速开始的好办法,希望它能对你有所帮助。

    在替换完成以后,代码看上去应该像下面这个样子:

    [CODE]
    testcase DataDrivenExample (REC_DATALIST_DD_DataDrivenExample rData) appstate DefaultBaseState
    [ ]
    [ ] Browser.Maximize()
    [ ]
    [ ] // If the Logon page is not displayed Load it.
    [-] if (!LoginPage.Exists())
    [ ] Browser.LoadPage("{kProtocol}://{kWebServer}:{kPort/logon.jsp")
    [ ]
    [ ] LoginPage.LoginUser (rData.recSheet1_.User, rData.recSheet1_.Password)
    [ ] ApplicationHome.Exists(kPageTimeOut)
    [ ] ApplicationHome.SetActive()

    [/CODE]

     

     

    100. 为了注册,我正在输入一些 data…

    问题:

    为了注册,我正在输入一些数据,后面的迭代导致测试用例失败,原因是 session 的 cookie 仍然存在,所以整个测试都会 fail 。我应该怎么做啊,清空 cache 看上去不起作用。

     

    答案 1 :

    我们也遇到过相同的情况。绕过这个问题的唯一方法就是不要接受 cookie ,如果应用允许的话。或者在两次测试之间杀掉浏览器进程,并且直接清空 cookie 。

     

    答案 2 :

    你需要写一小部分代码来清空 cache 。通过浏览器工具菜单 ->Internet options ,然后点击 delete cookie and delete files 。你可以将这个操作作为你应用 appstate 的一部分,这样每次你启动新的 testcase 时它都会被执行。

  • 相关阅读:
    A1035
    A1005
    A1073
    A1061
    A1058
    A1027
    A1019
    Java 操作临时文件创建与删除
    面试必会之HashMap源码分析
    springboot整合cxf框架启动报错
  • 原文地址:https://www.cnblogs.com/riskyer/p/3315268.html
Copyright © 2020-2023  润新知