我想将我的selenium测试设置外部化,以使它们更易于配置。 我想将testURL和我的节点URLS外部化。
这是我的代码:
public void setup () throws MalformedURLException
{ //the URL of the application to be tested
TestURL = "http://frstmwarwebsrv2.orsyptst.com:9000";
//Hub URL
BaseURL = "http://10.2.128.126";
//Node1 URL
winURL = "http://10.2.128.120:5556/wd/hub";
//Node2 URL
androidURL ="http://10.2.128.120:5555/wd/hub";
目前我已经在每个测试中添加了这个设置功能,我希望将它放在一个XML文件中作为示例,以使其可配置,任何建议?
由于
感谢您的帮助
更新:
这是我到目前为止所做的:
添加了包含以下内容的config.properties文件:
# This is my test.properties file
AppURL = http://************
HubURL= http://*****************
WinURL= http://*********/wd/hub
AndroidURL =
iOSURL
并创建了一个阅读属性的classe:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Properties;
public class ReadPropertiesFile {
public static void main(String[] args) {
try {
File file = new File("config.properties");
FileInputStream fileInput = new FileInputStream(file);
Properties properties = new Properties();
properties.load(fileInput);
fileInput.close();
Enumeration enuKeys = properties.keys();
while (enuKeys.hasMoreElements()) {
String key = (String) enuKeys.nextElement();
String value = properties.getProperty(key);
System.out.println(key + ": " + value);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
运行时我收到此错误:
java.io.FileNotFoundException: config.properties (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at ReadPropertiesFile.main(ReadPropertiesFile.java:15)
我的属性文件位于src文件夹
下答案 0 :(得分:1)
您可以采取以下两种基本方式:
System.getProperty(...)
我最近在我的Selenium测试中实现了第二个,并且可以扩展这个答案,以便在需要时提供更多详细信息。
答案 1 :(得分:0)
在我的测试中,我解决了我创建了一个名为Environment
的Java类来存储有关给定环境的信息:
几段代码:
public enum NameOfEnvironment {
SYSTEMTEST, ACCEPTANCE
}
存储给定环境的名称:)
public String getBaseUrl() {
switch (actualEnvironment) {
case SYSTEMTEST: {
baseUrl = getPrefix() + "172.23.32.251:9092/pages/index.html";
break;
}
会返回环境的URL。在测试开始时我有这样的事情:
public static final Environment USED_ENVIRONMENT = new Environment(Environment.NameOfEnvironment.SYSTEMTEST);
稍后,我只需拨打USED_ENVIRONMENT.getBaseUrl()
即可返回当前正在运行的链接
顺便说一句,填写空格,这里是类的构造函数
public Environment(NameOfEnvironment env) {
this.actualEnvironment = env;
}