0

我对 Java 编程比较陌生,目前正在使用 IBM 的 Rational Functional Tester 工具(8.5 版)。在我开始之前,我的编程术语不是最好的,如果我在各个地方使用了错误的术语,请道歉。我还在 IBM 网站、该网站和其他各种网站上四处查看,但未能找到解决此问题的方法 :(

我目前正在尝试创建一个自动化测试流程(用于 Web 应用程序),但我正在努力处理 1 个特定部分。

场景如下: 在第 1 页,我有一组简单的是/否单选按钮。在第 2 页,我有一组列表框(1 列中的一组列表框,另一列中的另一组列表框,两组包含不同的信息)。第 2 页上看到的列表框的数量将取决于第 1 页上给出的是/否答案的数量。如果用户对每个问题都说“是”,那么数据驱动器中将会有大量列表框(接近 100)。

目前,我正在使用此代码来填充这些列表框:

TestObject[] listboxes
listboxes = html_application().find(atDescendant(".class", "Html.SELECT"), false);

for(int i = 0 < i < listboxes.length; i++)
{
        GuiTestObject button = (GuiTestObject)listboxes[i];
        RootTestObject boxes = getRootTestObject();
        TestObject[] list = boxes.find(atDescendant(".class", "Html.SELECT"));
        SelectItemGuiTestObject gto = (SelectGuiSubItemTestObject) list_viewFormList2View();
        gto.select(dpString("Identity_Type"));

        RootTestObject boxes2 = getRootTestObject();
        TestObject[] list2 = boxes2.find(atDescendant(".class", "Html.SELECT"));
        SelectItemGuiTestObject gto2 = (SelectGuiSubItemTestObject) list_viewFormList2View2();
        gto2.select(dpString("Identity_Proven"));
}

代码继续以类似的方式继续运行,但由于两个主要原因,我无法让它适用于所有可能的情况:

A)直到运行时才知道对象位置。B) 第 1 页提供的信息决定了用户将在第 2 页看到的内容。

有没有更好的方法来做到这一点,然后添加几个重复的代码部分,如上所示?因为可能有很多很多列表框来驱动数据。

我已经在很多地方寻找解决方案,但我真的很难让这个特定的逻辑工作。

非常感谢您提供的任何帮助!

4

2 回答 2

0

我真的不明白你的代码应该做什么。在我看来,boxesandboxes2是相同的对象,所以listandlist2也应该是平等的。然后你得到两个相等的对象gto,并gto2从与你之前搜索的对象无关的 Helper 类中得到。

关于A)和B):由于应该在测试用例中知道,第1页上提供了哪些信息,还应该在第2页上显示哪些列表框。或者我错过了什么?

如果您想防止代码重复,您需要在列表框和数据池之间建立某种链接,例如:

for (int i = 0; i < listboxes.length; i++) {
    SelectGuiSubitemTestObject listbox = (SelectGuiSubitemTestObject)listboxes[i];
    String listboxID = listbox.getProperty(".id").toString();
    listbox.select(dpString(listboxID));
}

这将获取一个列表框的 ID,并从与该 ID 一起存储的数据池中选择值。但我不确定这是否是您需要的——遗憾的是,我的声誉太低,无法为您的问题添加评论。

于 2014-02-11T15:47:28.647 回答
0

为了为您的问题提供更好的解决方案框架,我需要您根据以下场景回答以下查询:考虑用户选择 2 个单选按钮作为 true/yes 的场景,这会导致 5 个列表框/组合-第二页的方框。

  1. 你知道下一页会有多少个列表框吗?(在这种情况下为 5)
  2. 您知道要在每个列表框中选择什么项目吗?此数据选择是来自数据池还是 Excel 表?
  3. 如果您不知道第 1 点的答案,您打算如何选择列表框中的项目。我的意思是你怎么知道你需要从数据池中为这个页面提供多少数据?

根据您的回答,我可以建议一个框架或代码片段。

于 2014-02-21T08:24:00.237 回答