2020-03-12
1 选型
2 思路
3 使用maven命令选项参数化用例组织、用例环境
4 集成Jenkins参数化用例组织、用例版本、用例执行环境
4.1 插件说明
4.2 创建配置Jenkins任务
4.3 执行Jenkis task
源代码:interface-test-framework2.zip
1 选型
- 使用Maven作为项目类型,方便管理架包。
- 使用TestNG作为项目运行框架,方便执行测试用例,生成测试报告。
- 使用ExtentReports作为代替TestNG报告的报告驱动,二次美化功能,界面更美观,内容清晰
- 使用Git作为仓库管理工具,方便管理项目代码。
- 使用Jenkins作为自动化持续集成平台,方便自动编译,自动打包,自动运行测试脚本,邮件发送测试报告,通知等。
2 思路
如何使用jenkins一键执行自动化,主要考虑到用例管理和用例执行环境的参数化。
用例管理
- 用例组织:使用testng的testn.xml来组织(ExtentReport报告也会对testng.xml标签<Test>做分组展示)
- 用例版本:用git的branch做版本控制
用例环境
- 用例执行的环境,如开发、测试、预发布、生产环境
3 使用maven命令选项参数化用例组织、用例环境
命令如下
mvn clean test -Pdev -DxmlFileName=testngEnvFilter.xml
其中,Maven中的-D(Properties属性)和-P(Profiles配置文件)
pom.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.demo</groupId> <artifactId>interface-test-framework</artifactId> <version>1.0-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <xmlFileName></xmlFileName> </properties> <dependencies> <!-- 测试报告插件和testng的结合 --> <dependency> <groupId>com.vimalselvam</groupId> <artifactId>testng-extentsreport</artifactId> <version>1.3.1</version> </dependency> <!-- extentreports测试报告插件 --> <dependency> <groupId>com.aventstack</groupId> <artifactId>extentreports</artifactId> <version>3.0.6</version> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.1.0</version> </dependency> </dependencies> <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <filters> <filter>src/main/resources/envFilters/filter-${env}.properties</filter> </filters> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.0</version> <configuration> <argLine>-Dfile.encoding=UTF-8</argLine> <encoding>UTF-8</encoding> <suiteXmlFiles> <!--<suiteXmlFile>${project.basedir}/target/classes/testNg/api/APICollection-TestSuite.xml</suiteXmlFile>--> <suiteXmlFile>${project.basedir}/target/classes/testNg/${xmlFileName}</suiteXmlFile> <!--<suiteXmlFile>${project.basedir}/target/classes/testNg/api/push/RegisterToken-TestSuite.xml</suiteXmlFile>--> </suiteXmlFiles> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <encoding>UTF-8</encoding> <source>8</source> <target>8</target> </configuration> </plugin> </plugins> </build> <!-- 不同的打包环境 --> <profiles> <!-- 开发环境,默认激活 --> <profile> <id>dev</id> <properties> <env>dev</env> </properties> </profile> <!-- 生产环境 --> <profile> <id>product</id> <properties> <env>product</env> </properties> </profile> <!-- 测试环境 --> <profile> <id>test</id> <properties> <env>test</env> </properties> <activation> <activeByDefault>true</activeByDefault><!--默认启用的是test环境配置--> </activation> </profile> </profiles> </project>