硒测试应该保存在单独的项目中

时间:2017-12-28 04:41:49

标签: selenium jenkins

我有一个Java Web应用程序(Maven),我有一些Selenium测试。测试框架是Junit 4.x.
我也使用Jenkins进行CI。现在我的所有测试(集成+ selenium)都保存在项目的src / test文件夹下。(经典的maven结构)

由于Jenkins无法运行selenium测试(它没有配置为执行此操作 - 我在没有图形界面的Linux机器上运行,在这种情况下解决方案似乎有点笨拙,但我在考虑运行一个selenium服务器,以便我可以在Windows从机上运行所有这些测试)我必须手动“从执行中删除selenium测试”,否则我将有很多失败的测试。

我想要完成的是一个场景: 1.提交SVN
詹金斯创造了一个建筑 3.运行测试,如果没有问题,请转到下一步,否则,停止
4.将应用程序部署到应用程序服务器
5.在Jenkins中作为post build脚本运行针对该部署的selenium测试。

为了让这个运行,我必须将selenium测试提取到其他项目吗? (为了避免Jenkins运行此测试以及其他集成/单元测试)

1 个答案:

答案 0 :(得分:0)

当您使用 Maven 时,您说kept under the src/test folder of the project听起来只是 Perfecto

你在问题​​中没有提到为什么Jenkins cannot run selenium tests (it is not configured to do this)。在你的问题的后面你已经提到过Run the tests,假设你正在使用 TestNG ,这只是 Jenkins 的一步配置来执行 pom.xml Maven 将调用 * testng.xml ,如下所述:

  • 确保 Automated Test Suite 正确执行 TestNG Suite Maven Test
  • 启动Jenkins并浏览到Manage Jenkins - > Configure System
  • 向下滚动至JDK -> JDK installations并确保 JAVA_HOME 设置为 C:\path\to\jdk1.8.0_144 。取消选中 Install automatically
  • 向下滚动至Maven -> Maven installations并提供Name MAVEN_HOME & MAVEN_HOME C:\path\to\apache-maven-3.3.3 。取消选中 Install automatically
  • 向下滚动至JDK -> JDK installations并确保Local Maven Repository设为Default(~/.m2/repository)
  • 申请&保存
  • Jenkins信息中心上,创建一个New Item作为Maven project
  • 向下滚动至Build部分,并提供 Root POM 作为pom.xml的绝对路径,例如的 C:\Users\<user_name>\LearnAutmation\maven.jenkins\pom.xml
  • Goals and options 设为 clean install
  • 最后一步是在 testng.xml \ProjectWorkSpace\src\main\resources\testng.xml 中移动 pom.xml 您必须提及 testng.xml 的位置,如下所示:

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-surefire-plugin</artifactId>
	<version>2.17</version>
	<configuration>
		<suiteXmlFiles>
			<suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
		</suiteXmlFiles>
	</configuration>
</plugin>	

  • 通过 Jenkins
  • 构建您的项目

根据您的具体问题In order to have this running do I have to extract the selenium tests to other project ?,答案为

解决方案:

  • 如果您要执行Suites Integration Selenium ,则此设置是您的。
  • 如果您想单独执行Suites中的任何一个,请将 Integration Selenium 套件划分为不同的 TestNG Groups 并转动开启&amp; 关闭执行 TestNG Groups