我有一个Java自动化测试框架。我需要这个代码在多个环境下运行,比如SIT、UAT和Prod,但所有这些环境都有不同的URL。
sit-config.properties
首页=XXX
uat配置。属性
首页=YYY
马文简介
<profiles>
<profile>
<id>sit</id>
<activation>
<property>
<name>environment</name>
<value>sit</value>
</property>
</activation>
</profile>
<!-- mvn -Denvironment=sit clean test -->
<profile>
<id>uat</id>
<activation>
<property>
<name>environment</name>
<value>uat</value>
</property>
</activation>
</profile>
</profiles>
问题(编辑):
http://www.testautomationguru.com/selenium-webdriver-how-to-execute-tests-in-multiple-environments/
请帮忙。谢谢
根据您给出的示例,下面有一条指令,说明从Maven执行测试需要做什么:
1) 在src/test/resourcces中为每个环境维护一个单独的属性文件
2)在Maven项目中添加所有者依赖项。
3) 创建界面“环境”,如示例所示:
@Sources({
"classpath:${env}.properties"
})
4)在整个测试和页面对象中,您将使用test环境对象:
public class EnvironmentTest {
Environment testEnvironment;
@Test
public void functionalTest() {
System.out.println(testEnvironment.url());
System.out.println(testEnvironment.getDBHostname());
System.out.println(testEnvironment.getDBPassword());
}
@BeforeTest
public void beforeTest() {
String environemnt = System.getProperty("environment"); //here you read your environment name
ConfigFactory.setProperty("env", environemnt); //here you use your environment name for reading proper file
testEnvironment = ConfigFactory.create(Environment.class); //here we create an instance of the Environment interface & access the property file
}
}
5) 使用Maven运行程序,在其中输入测试的环境名称:
clean test -Dtest=EnvironmentTest -Denvironment=qa
我必须解决一个类似的问题。这是我如何接近的。
步骤1:在POM. xml下添加surefire插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<systemPropertyVariables>
<TestEnvironment>local</TestEnvironment>
</systemPropertyVariables>
<!-- <suiteXmlFiles>
<suiteXmlFile>here goes your testng xml</suiteXmlFile>
</suiteXmlFiles> -->
</configuration>
</plugin>
这里,TestEnvironment
是您正在设置的自定义系统属性,稍后可以在代码中检索。
注意:如果要运行特定的testng xml,请取消注释
第2步:添加代码以获取系统属性并从相应的属性文件中读取。
// Assuming your properties files are in the root directory of your project.
String configFileName = "./%s-config.properties";
String EnvironmentName = System.getProperty("TestEnvironment");
System.out.println("TestEnvironment: " + EnvironmentName);
configFileName = String.format(configFileName, EnvironmentName);
properties = new Properties();
properties.load(new FileInputStream(new File(configFileName)));
步骤3:将
Test环境
传递给mvn
命令
mvn clean test -DTestEnvironment=sit
此命令将从您的
sit-config.properties
文件中读取并执行测试。要从不同的属性文件中读取,请在命令行中传递不同的值。
如果这回答了你的问题,请告诉我。
首先你必须创建属性文件与您的不同网址
然后添加配置文件读取器
public String applicationUrl_QA() {
String applicationUrl = properties.getProperty("applicationUrl_QA");
if(applicationUrl != null) return applicationUrl;
else throw new RuntimeException("url not specified in the Configuration.properties file.");
}
然后你可以像下面这样配置所有的环境
if(Env.equalsIgnoreCase("QA")){
if(URL.equalsIgnoreCase("_QA")){
driver.get(configFileReader.applicationUrl_QA());
}
然后,您必须像下面这样创建单独的XMLs
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="false" thread-count="5" verbose="1">
<!--Values Chrome Firefox HLChrome HLFirefox HTMLUnit phantomJS-->
<parameter name="browser" value="Firefox"/>
<!--Values AdminURL StatementURL PatientURL-->
<parameter name="URL" value="Value"/>
<!--Values QA Dev Uat Prod -->
<parameter name="Env" value="QA"/>
<test name="AdminTests">
<classes>
<class name="tests.Test1"/>
</classes>
<classes>
<class name="tests.test2"/>
</classes>
</test>
</suite>
最后,必须使用一个xml文件调用所有xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="false" thread-count="5" verbose="2">
<suite-files>
<suite-file path="File1_QA.xml"/>
</suite-files>
<suite-files>
<suite-file path="File2_UAT.xml"/>
</suite-files>
</suite>
我是一个使用NIFI的大一新生。下面的NiFi dataflow从固定URL上的GET请求中获取数据,但是我的endpoint有一组参数来获取部分数据,例如页面ID。我希望避免为稍微不同的请求URL创建相同的工作流。 在API中,我可以请求可用的页面列表,我希望使用这样的请求的结果开始循环下面的工作流。我该怎么做??
我正在为我的QA项目做研究,我想知道空手道是否能够处理某些用例。基本上,我需要为不同的环境(本地、临时、生产)运行测试。我从文档中了解到,这不是一个问题,因为有了karate-config.js和karate-config-env.js。 问题从执行本身开始。每个环境对于3个不同的国家都有不同的URL,所以实际上总共有9个URL。此外,由于开发过程的原因,某些功能并不是在所有国家同时部署的。所以我
问题内容: 我试图用来创建我的,以确保我的构建/项目的质量。该项目也需要使用和。一切在我的本地计算机上都可以正常运行,但是现在我正在尝试使环境一致,可重现。当我尝试在新的虚拟机中运行时,会中断一个在本机中正常运行但 不在 新vm中运行的。 我检查了版本,,,(其)一切都是一样的。但是,我的Maven项目在此测试中失败了。 我在这里想念什么?任何想法,建议都会受到赞赏,因为我现在还没有想法,到目前为
问题内容: 我目前在“开发”框中安装了Jenkins实例。这样可以很好地构建并且可以毫无问题地部署到我们的开发环境中。 在构建过程中,我的项目使用了一个包含诸如数据库连接URL之类的详细信息的属性文件(诸如此类的详细信息显然会因我所指向的环境而异)。 我想知道的是配置项目的最佳方法是什么,以便当我想将Jenkins构建的WAR文件发布到Production中时,它包含Production属性而不是
我刚刚下载了Eclipse并尝试运行它,它给了我这个错误消息: 错误:打开注册表项'Software\JavaSoft\Java运行时环境 到我得到: java版本“1.8.0_231” Java(TM)SE运行时环境(构建1.8.0_231-B11) Java HotSpot(TM)64位服务器VM(构建13.0.1+9,混合模式,共享) 我使用的是Windows 10 Pro EclipseI
Linux运行环境 QEMU用于模拟一台x86计算机,让ucore能够运行在QEMU上。为了能够正确的编译和安装 qemu,尽量使用最新版本的qemu,或者os ftp服务器上提供的qemu源码:qemu-1.1.0.tar.gz)。目前 qemu 能够支持最新的 gcc-4.x 编译器。例如:在 Ubuntu 12.04 系统中,默认得版本是 gcc-4.6.x (可以通过 gcc -v 或者