使测试自动化脚本与域无关以重用测试脚本
作者:网络转载 发布时间:[ 2012/9/29 15:01:26 ] 推荐标签:
清单 2. 将父对象解析为应用程序域
/* Parse the Top Level Test Object to the corresponding test object type based
* on the domain name that was set
*/
TestObject myDomain;
if (myDomainName.equalsIgnoreCase("Html.HtmlBrowser")) {
myDomain = (BrowserTestObject)
returnTO(".class", "Html.HtmlBrowser");
}
else if (myDomainName.equalsIgnoreCase("Html.Dialog")) {
myDomain = (TopLevelTestObject)
returnTO(".class", "Html.Dialog");
}
else if (myDomainName.equalsIgnoreCase("javax.swing.JDialog")) {
myDomain = (TopLevelTestObject)
returnTO(".class","javax.swing.JDialog");
}
else if (myDomainName.equalsIgnoreCase("javax.swing.JFrame")) {
myDomain = (TopLevelTestObject)
returnTO(".class", "javax.swing.JFrame");
}
else if (myDomainName.equalsIgnoreCase
("com.ibm.retail.rma.res.ui.config.MasterAgentInfoDlg")) {
myDomain = (TopLevelTestObject)
returnTO(".class",
"com.ibm.retail.rma.res.ui.config.MasterAgentInfoDlg");
}
/* This function returns the 1st instance of a test object based on the
* recognition property and the property value provided. If the test object
* is not found null will be returned.
*/
public TestObject returnTO(String recognitionProperty,
String recognitionPropertyValue,) {
RootTestObject rTO = getRootTestObject();
TestObject[] TOs = rTO.find(atDescendant(recognitionProperty, propValue));
TestObject returnTO = null;
int numOfObjects = TOs.length;
if (numOfObjects >= 1)
returnTO = TOs[0];
return returnTO;
}
在将顶层测试对象解析为正确的父测试对象类型后,使用 find() API 将有助于获得该对象下面的子对象的引用。然后,您可以编写一个通用的可重用函数,该函数将以跨域的方式工作。清单 3 中的代码显示一个示例,其中定义了通用 setText 函数,无论应用程序域是 HTML、Java、.NET,还是基于当前图形化用户界面技术的任何其他域,该函数均有效。
清单 3. 通用的跨域 setText() 函数
public boolean setTextGuiTestObject(TestObject myDomain,
String recognitionProperty,
String recognitionPropertyValue,
String valueToSet) {
boolean status = true;
try {
TestObject[] TOs = null;
TOs = myDomain.find(atDescendant
(recognitionProperty, recognitionPropertyValue));
int numOfObjects = TOs.length;
if (numOfObjects >= 1) {
TextGuiTestObject myGTO1 = null;
myGTO1 = (TextGuiTestObject) TOs[0];
myGTO1.waitForExistence(2500, 0.10);
if (myGTO1.exists()) {
System.out.println("Setting Text: " + valueToSet);
myGTO1.click();
myGTO1.setText(text);
}
}
myGTO1.unregister();
}
catch (Exception e) {
System.out.println("Unable to set Text :: " + e.toString());
status = false;
}
return status;
}
在本例中,该函数没有绑定到任何应用程序域。相反,在将值设置到 Text Box 之前,应用程序域作为一个输入参数被传递给该函数。因此,只要提供了正确的域、标识属性以及要设置的值,自动化脚本能够在任何域的编辑框中设置文本。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11