扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
xml 代码 <!--从classpath(类路径)中导入base-test-object-map.xml文件 可以使用base-test-object-map.xml文件中定义的bean--> <!--导入时候要包含完整的包名--> <import resource="classpath:pkg/base-test-object-map.xml"/> <!--设置待查找对象的识别属性 格式:propertyName-propertyValue--> <property name="objectProperties"> <list> <!--属性名称和属性精确匹配用=--> <!--属性名称和属性用正则表达式匹配用:--> <value>.class=Html.FORMvalue> 然后是怎么使用spring配置文件中的测试对象 <value>.name:.*Formvalue> list> property> <!--设置从什么对象开始查找 注入父测试对象--> <!--browserTestObject 引用的是base-test-object-map.xml文件中已经定义的bean--> <property name="parentTestObject"> <ref bean="browserTestObject"/> property> |
java 代码 TextGuiTestObject text_userName = new TextGuiTestObject((TestObject)context.getBean("userNameText")); text_userName.setText("system"); |
base-test-object-map.xml 代码 xml 代码 <!--sp-->xml version="1.0" encoding="gb2312"?> <!--CTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" </sp--> "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!--注册com.rational.test.ft.script.Property属性编辑器--> <bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer"> <property name="customEditors"> <map> <entry key="com.rational.test.ft.script.Property"> <bean class="pkg.TestObjectPropertyEditor"/> entry> map> property> bean> <!--实例化pkg.BaseTestObjectScript类--> <bean id="baseTestObjectScript" class="pkg.BaseTestObjectScript"/> <!--调用baseTestObjectScript中的非静态方法getBrowserTestObject产生一个BrowserTestObject测试对象--> <bean id="browserTestObject" factory-bean="baseTestObjectScript" factory-method="getBrowserTestObject" singleton="false"/> <!--调用baseTestObjectScript中的非静态方法getDocumentTestObject产生一个DocumentTestObject测试对象--> <bean id="documentTestObject" factory-bean="baseTestObjectScript" factory-method="getDocumentTestObject" singleton="false"/> beans> |
package pkg; import resources.pkg.BaseTestObjectScriptHelper; import com.rational.test.ft.*; import com.rational.test.ft.object.interfaces.*; import com.rational.test.ft.object.interfaces.siebel.*; import com.rational.test.ft.script.*; import com.rational.test.ft.value.*; import com.rational.test.ft.vp.*; public class BaseTestObjectScript extends BaseTestObjectScriptHelper { public void testMain(Object[] args) { } public BrowserTestObject getBrowserTestObject() { return browser_htmlBrowser(document_H(),DEFAULT_FLAGS); } public GuiTestObject getDocumentTestObject() { return document_H(); } } |
package pkg; import com.rational.test.ft.script.Property; import java.beans.PropertyEditorSupport; import java.util.StringTokenizer; import com.rational.test.ft.value.RegularExpression; public class TestObjectPropertyEditor extends PropertyEditorSupport { public void setAsText(String text) { String delimiter = null; Object propValue = null; if(text == null || text.length() < 1 || (text.indexOf(EQUAL_MARK) == -1 && text.indexOf(COLON) == -1)) { throw new IllegalArgumentException("识别属性为空或格式不正确 =表示进行精确匹配 :表示使用正则表达式匹配"); } if(text.indexOf(EQUAL_MARK) != -1) { delimiter = EQUAL_MARK; } else if(text.indexOf(COLON) != -1) { delimiter = COLON; } //解析字符串 StringTokenizer st = new StringTokenizer(text, delimiter); String name = st.nextToken(); String value = st.nextToken(); propValue = value; if(text.indexOf(COLON) != -1) //如果分隔符为 : 将propValue设置为正则表达式 { propValue = new RegularExpression(value, false); } setValue(new Property(name, propValue)); } public String getAsText() { Property property = (Property)getValue(); return property.getPropertyName() + "-" + property.getPropertyValue(); } public final String EQUAL_MARK = "="; //"=" 表示进行精确匹配 public final String COLON = ":"; //":" 表示使用正则表达式匹配 } |
pkg/logon-map.xml xml 代码 <!--sp-->xml version="1.0" encoding="gb2312"?> <!--CTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" </sp--> "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!--从classpath(类路径)中导入base-test-object-map.xml文件 可以使用base-test-object-map.xml文件中定义的bean--> <!--导入时候要包含完整的包名--> <import resource="classpath:pkg/base-test-object-map.xml"/> <!--实例化pkg.TestObjectHelper类--> <bean id="loginFormHelper" class="pkg.TestObjectHelper" singleton="false"> <!--设置待查找对象的识别属性 格式:propertyName-propertyValue--> <property name="objectProperties"> <list> <!--属性名称和属性精确匹配用=--> <!--属性名称和属性用正则表达式匹配用:--> <value>.class=Html.FORMvalue> <value>.name:.*Formvalue> list> property> <!--设置从什么对象开始查找 注入父测试对象--> <!--browserTestObject 引用的是base-test-object-map.xml文件中已经定义的bean--> <property name="parentTestObject"> <ref bean="browserTestObject"/> property> bean> <!--调用loginFormHelper中的getSonTestObject 此方法返回TestObject测试对象--> <bean id="loginForm" factory-bean="loginFormHelper" factory-method="getSonTestObject" singleton="false"> bean> <!--动态查找text_userName测试对象--> <bean id="userNameTextHelper" class="pkg.TestObjectHelper" singleton="false"> <property name="objectProperties"> <list> <value>.class=Html.INPUT.textvalue> <value>.name=userNamevalue> list> property> <property name="parentTestObject"> <ref bean="loginForm"/> property> bean> <!--动态查找text_password测试对象--> <bean id="userNameText" factory-bean="userNameTextHelper" factory-method="getSonTestObject" singleton="false"> bean> <bean id="passwordTextHelper" class="pkg.TestObjectHelper" singleton="false"> <property name="objectProperties"> <list> <value>.class=Html.INPUT.passwordvalue> <value>.name=passWordvalue> list> property> <property name="parentTestObject"> <ref bean="loginForm"/> property> bean> <bean id="passwordText" factory-bean="passwordTextHelper" factory-method="getSonTestObject" singleton="false"> bean> <!--动态查找ubmit_button测试对象--> <bean id="submitButtonHelper" class="pkg.TestObjectHelper" singleton="false"> <property name="objectProperties"> <list> <value>.class=Html.INPUT.submitvalue> <value>.value=进入value> list> property> <property name="parentTestObject"> <ref bean="loginForm"/> property> bean> <bean id="submitButton" factory-bean="submitButtonHelper" factory-method="getSonTestObject" singleton="false"> bean> <!--点击菜单--> <bean id="menuHelper" class="pkg.MenuHelper" singleton="false"> <!--待点击菜单名称 必须按照先后顺序--> <property name="menus"> <list> <value>菜单名称1value> <value>菜单名称2value> <value>菜单名称3value> <value>菜单名称4value> list> property> <!--注入父测试对象 定义从什么对象开始查找菜单并点击--> <property name="parentTestObject"> <ref bean="documentTestObject"/> property> bean> beans> |
package pkg; import com.rational.test.ft.AmbiguousRecognitionException; import com.rational.test.ft.ObjectNotFoundException; import com.rational.test.ft.object.interfaces.TestObject; import com.rational.test.ft.script.Property; import com.rational.test.ft.script.SubitemFactory; public class TestObjectHelper { public Property[] getObjectProperties() { return objectProperties; } public void setObjectProperties(Property[] objectProperties) { this.objectProperties = objectProperties; } public TestObject getParentTestObject() { return parentTestObject; } public void setParentTestObject(TestObject parentTestObject) { this.parentTestObject = parentTestObject; } public TestObject getSonTestObject() { return findSonTestObject(); } public void setSonTestObject(TestObject sonTestObject) { this.sonTestObject = sonTestObject; } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者