zoukankan      html  css  js  c++  java
  • SilkTest Q&A 9

    Q81:我应该如何存取excel sheet里面的空字符串?
    A81:定制代码如下:
    解决方案1:
    [-] if sText!=NULL
    [ ] Page.tfldName.SetText(sText) // do the operation
    [-] else
    [ ] Page.tfldName.CleartText()
    永久解决方案:将下面的winclass加入你的代码中,如果你的是web应用就直接拷贝粘贴,否则将htmlTextField改成TextField,这样Text field将不会因为空值而产生异常。
    [-] winclass HtmlTextField: HtmlTextField
    [ ]
    [-] void SetText(String sText optional)
    [+] if sText==NULL
    [ ] this.ClearText()
    [+] else
    [ ] derived::SetText(sText)

     

     

    Q82:如何用负向测试方法测试一个webpage?我需要捕捉所有的错误页么?
    A82:捕捉所有的错误信息会增加你的脚本长度…捕捉一个页面并且使用”*”从而试着使identifier能够对所有的页面通用。
    如果错误页以text message的方式出现,得到该text的索引(一般它是固定的)并且得到测试中的值从而与期望值进行比较,例如:
    if BrowserPage.HtmlText ("#1").GetText () == "Invalid date"
    Print ("Pass")
    else
    Print ("Fail")
    假设第一次,你输入一个无效的mail ID,结果错误页的tag是” Error Page - Invalid mail ID”,第2次你输入一个无效的日期,结果错误页的tag是"Error Page - Invalid date"。为了泛化错误页,将tag改成"Error Page - Invalid*"或者"Error Page*",来表示这里出现了错误页。

     

     

    Q83.如何用cmd命令行运行.bat文件,从而执行test plan?
    A83:可以使用如下方法设置。
    - Enter Plan File Path - e.q - c:/test
    - Plan File Name - e.q - sample.pln
    语法为"C:/Program Files/Segue/SilkTest/partner.exe" -r "/.pln"
    例如:"C:/Program Files/Segue/SilkTest/partner.exe" -r "c:/test/sample.pln"
    将上面一行拷贝成.bat文件,然后用cmd命令行运行它。

    Q84:从开发者的角度来看,SilkTest内部实际上是如何工作的?
    A84:
    答案1:
    Silktest和GUI交互,将操作自动提交给应用程序。也就是,silktest驱动应用。
    它由不同的两部分软件组成:
    (i)silktest host软件
    (ii)4Test Agent软件
    host软件是你用来开发,编辑,编译,运行,调试你的4Test脚本和test plan的程序。
    4Test Agnet是将你的4Test脚本翻译成GUI相关命令的软件。一个Agent可以运行在本地的host机器上,在网络环境中,任何数量的Agent可以运行在远程的机器上。
    答案2:
    Silktest和其他GUI自动工具通过以下方式工作:
    1.你需要录制应用程序的GUI。这相当与告诉silktest它将运行在什么上面。
    2.使用录制的应用程序的GUI来编写testcase的脚本。
    3.在一个新构建的版本上,再次执行你的testcase。
    任何失败可能由以下情况导致:
    1.应用程序错误
    2.脚本错误
    假设是脚本的错误,可能的原因如下:
    1.逻辑错误
    2.产品行为的改变导致脚本错误(因此,脚本需要被更新)
    3.或者,应用程序的GUI发生了变化,这意味着你需要更新GUI的记录。
    当一个自动工具录制GUI时,它主要通过该GUI特定的属性捕捉每个GUI对象,该属性在下一次自动执行时用来标识该GUI。
    为了给你举例,让我考虑在一个典型的用户登录页中,有三个GUI实体。
    1.用户名域
    2.密码域
    3.登录按钮
    假设登录按钮有一个htmlid=login,silktest将会记录该GUI为HTMLPushButton,其id属性等于login(该文本标题可能根据button的不同而变化,比如:”Log in”)
    如果已经决定将该按钮的标题改成”Sign In”,而不改变htmlid属性,这种情况下,silktest还是能够正确地回放该GUI的自动脚本。
    但是万一,在下一个构建中,开发人员保持该按钮的标题名,但是改变其html id为”signin”,silktest将无法认出该按钮,即使对于用户来说看上去什么也没有改变。
    这就是大部分自动测试工具工作的基本原理。

     

     

    Q82:如何用负向测试方法测试一个webpage?我需要捕捉所有的错误页么?
    A82:捕捉所有的错误信息会增加你的脚本长度…捕捉一个页面并且使用”*”从而试着使identifier能够对所有的页面通用。
    如果错误页以text message的方式出现,得到该text的索引(一般它是固定的)并且得到测试中的值从而与期望值进行比较,例如:
    if BrowserPage.HtmlText ("#1").GetText () == "Invalid date"
    Print ("Pass")
    else
    Print ("Fail")
    假设第一次,你输入一个无效的mail ID,结果错误页的tag是” Error Page - Invalid mail ID”,第2次你输入一个无效的日期,结果错误页的tag是"Error Page - Invalid date"。为了泛化错误页,将tag改成"Error Page - Invalid*"或者"Error Page*",来表示这里出现了错误页。

     

     

    Q83.如何用cmd命令行运行.bat文件,从而执行test plan?
    A83:可以使用如下方法设置。
    - Enter Plan File Path - e.q - c:/test
    - Plan File Name - e.q - sample.pln
    语法为"C:/Program Files/Segue/SilkTest/partner.exe" -r "/.pln"
    例如:"C:/Program Files/Segue/SilkTest/partner.exe" -r "c:/test/sample.pln"
    将上面一行拷贝成.bat文件,然后用cmd命令行运行它。

     
    Q84:从开发者的角度来看,SilkTest内部实际上是如何工作的?
    A84:
    答案1:
    Silktest和GUI交互,将操作自动提交给应用程序。也就是,silktest驱动应用。
    它由不同的两部分软件组成:
    (i)silktest host软件
    (ii)4Test Agent软件
    host软件是你用来开发,编辑,编译,运行,调试你的4Test脚本和test plan的程序。
    4Test Agnet是将你的4Test脚本翻译成GUI相关命令的软件。一个Agent可以运行在本地的host机器上,在网络环境中,任何数量的Agent可以运行在远程的机器上。
    答案2:
    Silktest和其他GUI自动工具通过以下方式工作:
    1.你需要录制应用程序的GUI。这相当与告诉silktest它将运行在什么上面。
    2.使用录制的应用程序的GUI来编写testcase的脚本。
    3.在一个新构建的版本上,再次执行你的testcase。
    任何失败可能由以下情况导致:
    1.应用程序错误
    2.脚本错误
    假设是脚本的错误,可能的原因如下:
    1.逻辑错误
    2.产品行为的改变导致脚本错误(因此,脚本需要被更新)
    3.或者,应用程序的GUI发生了变化,这意味着你需要更新GUI的记录。
    当一个自动工具录制GUI时,它主要通过该GUI特定的属性捕捉每个GUI对象,该属性在下一次自动执行时用来标识该GUI。
    为了给你举例,让我考虑在一个典型的用户登录页中,有三个GUI实体。
    1.用户名域
    2.密码域
    3.登录按钮
    假设登录按钮有一个htmlid=login,silktest将会记录该GUI为HTMLPushButton,其id属性等于login(该文本标题可能根据button的不同而变化,比如:”Log in”)
    如果已经决定将该按钮的标题改成”Sign In”,而不改变htmlid属性,这种情况下,silktest还是能够正确地回放该GUI的自动脚本。
    但是万一,在下一个构建中,开发人员保持该按钮的标题名,但是改变其html id为”signin”,silktest将无法认出该按钮,即使对于用户来说看上去什么也没有改变。
    这就是大部分自动测试工具工作的基本原理。

     

     

    85. 我无法简单的使用"DialogBox (" ").Close ()" 来关闭对话框。。。

    在对话框上有一个按钮,一点,就会弹出第二个BrowserChild 。这个窗口没有一个常规的工具栏,它实际上是有一段Javascript 函数(openWindow) 打开的。由于某些原因,我不能简单的用"DialogBox (" ").Close ()" 来关闭它。

    事实上,这依赖于第二个窗口是如何申明的。
    在浏览器上,有一个弹出窗口,是用 JavaScript 做的,它没有包含任何浏览器的元素(没有工具栏,没有状态栏,没有位置,等等)。所以呢, silktest 将该窗口认为是对话框,但是直接申明它为对话框的时候又会导致失败。因为,它确实是个浏览器窗口。所以,我决定让 silktest 申明它为对话框,通常是如下的形式:
    [code]
    [-] window DialogBox DBCreateOffer
    [ ] tag "Requisition Create?Edit"
    [-] window BrowserChild BCCreateOffer
    [ ] tag "Create Offer"
    [ ] parent "CustomBrowser"
    [/code]
    然后,我修改 Silktest 自动生成的声明,然后让 BrowserChild 成为对话框的一部分:
    [code]
    [-] window DialogBox DBCreateOffer
    [ ] tag "Requisition Create?Edit *"
    [-] BrowserChild BCCreateOffer
    [ ] tag "Create Offer"
    [/code]
    现在,我就可以直接通过调用 DBCreateOffer.Close() 来关闭它了。

     

     

    87. 选择 ListBox 中 Item 的时候报错

    SilkTest 从一个ListBox (JavaJFCListBox )中选择item 的时候报如下的错误
    [ ] *** Error: Control is not responding
    [ ] Occurred in Select
    [ ] Called from LetterEditTool at FabEditorScript.t(1060)
    但是有的时候执行却不会报错,有人能给点帮助么?

    答:
    这是一个catch-all 错误信息,一般是由Select( ) 尝试选取ListBox ,TreeView ,ListView 等控件中的项目时出现的。解决这个问题,可以在导致错误的那一行前面加上下面这行代码:
    Agent.SetOption(OPT_VERIFY_RESPONDING, FALSE)

     

     

    88. 要测试的GUI 上面有一个Cancel 按钮,它的热键是Alt-c

    问:在一个待测GUI 上有一个Cancel 按钮,它的热键是Alt-c 和Alt-C (大小写都支持),手工测试的时候,这两组热键都能工作。
    但是在自动测试的时候,TypeKeys ("") 可以工作,而TypeKeys ("") 却不能工作,我还尝试了下列代码
    Presskeys ("")
    TypeKeys ("")
    ReleaseKeys ("")

    Presskeys ("")
    TypeKeys ("")
    ReleaseKeys ("")
    仍然不能工作,有人能帮忙么?

    答:如果你的应用是标准的,并且热键被很好的定义了。那么理想情况下,"") 和 ("" 都应该能够工作。不过,看来你的情况不是这样的,那么请尝试下面的工作。
    SilkTest 提供了模拟一组键被同时按下的功能,你可以通过角括号和连字符的组合来实现,请尝试下面的代码:
    ("")
    不是 TypeKeys ("")
    不是TypeKeys ("")
    不是TypeKeys ("")
    也不是
    TypeKeys ("")
    TypeKeys ("")

    解决了,不过当CapsLock 没有启用的时候,只有TypeKeys ("") 能够工作。如果我手动将CapsLock 启用,然后执行[TypeKeys ("")] ,并不能work 。

     

     

    90. 有人知道如何在silktest中转义空格么?

    例如,我有一个可执行文件,位于C:/Program Files/xyz/abc.exe
    我现在需要将'Program Files'中的空格转义,该如何做?

    答案:

    首先,你可以使用短型路径,例如:C:/Progr~1/xyz/abc.exe

    其次,你可以用引号来处理空格,例如:

    string sCmdLine = "C:/Program Files/xyz/abc.exe"
    Sys_Execute(sCmdLine)

  • 相关阅读:
    《深入理解java虚拟机》第二章:Java内存区域与内存溢出异常-20210716
    mongodb 占用内存及解决方法
    JDK常用分析工具
    mysql表碎片清理和表空间收缩
    Java Array 和 String 的转换
    Discourse 如何查看自己发布的主题
    Discourse 用户的邮件无法投递的时候如何处理
    IntelliJ IDEA 如何在 Java 中进行快速注释
    Java Arrays.asList 和 new ArrayList(Arrays.asList()) 的对比
    Druid 加载 Kafka 流数据的 索引属性(IndexSpec)
  • 原文地址:https://www.cnblogs.com/riskyer/p/3315276.html
Copyright © 2011-2022 走看看