Java(57):mvn test 执行testng测试用例

该篇博客介绍了如何在Maven项目中配置TestNG进行自动化测试。详细步骤包括在pom.xml中设置相关依赖和插件,以及配置testng.xml测试套件。执行mvn clean test后,能够按照配置的testng.xml执行测试用例,并生成Allure测试报告。博客内容包括了测试用例的执行过程和结果展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

maven项目,把testng用例放在test目录下,配置pom.xml 文件如下,执行mvn test 能自动执行testng里面的用例。

配置步骤

1、pop.xml配置

1.1、testng配置

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
    <java.version>8</java.version>
    <allure.version>2.13.2</allure.version>
    <aspectj.version>1.9.5</aspectj.version>
    <suiteXmlFile>testng.xml</suiteXmlFile>
</properties>
<!-- testNG 依赖-->
<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.11</version>
</dependency>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <!-- maven构建插件,运行mvn test调用allure实现测试报告生成  -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.1</version>
            <configuration>
                <argLine>
                    -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                </argLine>
                <!-- 指定要执行的testng路径  -->
                <suiteXmlFiles>
                    <suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
                </suiteXmlFiles>
                <systemProperties>
                    <property>
                        <!-- 配置 allure 结果存储路径  -->
                        <name>allure.results.directory</name>
                        <value>${project.build.directory}/allure-results</value>
                    </property>
                </systemProperties>
                <!-- 出现测试异常是否继续向下执行,此选项必备,防止异常测试场景导致执行中断  -->
                <testFailureIgnore>true</testFailureIgnore>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjweaver</artifactId>
                    <version>${aspectj.version}</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

2、testng.xml配置

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<!-- Suite代表一个测试套件,1个suite可包含多个Test -->
<suite name="casbTests">
    <!-- Test代表1个测试,里面可包含多个测试class -->
    <test name="CasbServer" preserve-order="true" >
        <classes>
            <class name="com.ciphergateway.testcase.UserManage"/>
        </classes>
    </test>
    <listeners>
        <listener class-name="com.ciphergateway.asserts.AssertionListener">    </listener>
</suite>

3、使用mvn clean test执行,执行的是配置在pom.xml里testng.xml的测试用例。

执行结果如下:

D:\java_project2021\autocasb>mvn clean test
[INFO] Scanning for projects...
[INFO]
[INFO] ---------------------< com.ciphergateway:autocasb >---------------------
[INFO] Building autocasb 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ autocasb ---
[INFO] Deleting D:\java_project2021\autocasb\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ autocasb ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 11 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ autocasb ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 35 source files to D:\java_project2021\autocasb\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ autocasb ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\java_project2021\autocasb\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:testCompile (default-testCompile) @ autocasb ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 8 source files to D:\java_project2021\autocasb\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ autocasb ---
[INFO]
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running TestSuite
-->setup(),用户权限管理的接口自动化测试,Start
Excel读取完成,文件名:src/data/testcase/apiData_all.xlsx,sheet:用户权限接口用例,行数:24
接口自动化测试url地址:https://10.1.1.104
<--测试用例描述:新增角色-->
{
    "permissionIdList": [
        "0000",
        "1000100000",
        "1000101000",
        "1000200000",
        "1000201000"
    ],
    "roleName": "roleName_eheeiddfai",
    "roleDescribe": "JAVA AUTO INSERT角色描述"
}
测试结果:PASS,预期结果,code:0,执行返回结果:{"code":0}
<--测试用例描述:新增角色_名称为空验证-->
{
    "permissionIdList": [
        "0000",
        "1000100000",
        "1000101000",
        "1000200000",
        "1000201000"
    ],
    "roleName": "",
    "roleDescribe": "JAVA AUTO INSERT角色描述"
}
测试结果:PASS,预期结果,code:600001,执行返回结果:{"code":600001,"msg":"角色名称不能为空"}
<--测试用例描述:新增角色_重复验证-->
{
    "permissionIdList": [
        "0000",
        "1000100000",
        "1000101000",
        "1000200000",
        "1000201000"
    ],
    "roleName": "roleName_eheeiddfai",
    "roleDescribe": "JAVA AUTO INSERT角色描述"
}
测试结果:PASS,预期结果,code:600110,执行返回结果:{"code":600110,"msg":"角色名称已经存在"}
<--测试用例描述:新增角色_长度验证(目前接口未校验)-->
{
    "permissionIdList": [
        "0000",
        "1000100000",
        "1000101000",
        "1000200000",
        "1000201000"
    ],
    "roleName": "longRoleName_y8bzTRztz33l34fSGcEh",
    "roleDescribe": "JAVA AUTO INSERT角色描述"
}
测试结果:PASS,预期结果,code:0,执行返回结果:{"code":0}
<--测试用例描述:查询角色-->
{
    "limit": 10,
    "page": 1,
    "sidx": "",
    "order": ""
}
测试结果:PASS,预期结果,code:0,执行返回结果,code:0
1456886574540152834
<--测试用例描述:修改角色-->
{
    "roleId":"1456886574540152834",
    "permissionIdList": [
        "0000",
        "1000100000",
        "1000101000",
        "1000200000",
        "1000201000"
    ],
    "roleName": "roleName_new_eeahbhafih",
    "roleDescribe": "JAVA AUTO Update角色描述"
}
测试结果:PASS,预期结果,code:0,执行返回结果:{"code":0}
<--测试用例描述:删除角色-->
1456886574540152834
测试结果:PASS,预期结果,code:0,执行返回结果:{"code":0}
<--测试用例描述:新增部门-->
{
    "organizationName": "orgName_ifgdhfcffg",
    "organizationParentId": "0",
    "remark": "AUTO"
}
测试结果:PASS,预期结果,code:0,执行返回结果:{"code":0,"data":"1456886619117215746"}
<--测试用例描述:新增下级部门-->
{"organizationParentId":"1456886619117215746","organizationName":"orgName_ParentName_auto","remark":"Parent_auto"}
测试结果:PASS,预期结果,code:0,执行返回结果:{"code":0,"data":"1456886622380384258"}
<--测试用例描述:新增部门_名称为空校验(目前接口未验证)-->
{
    "organizationName": "",
    "organizationParentId": "0",
    "remark": "AUTO"
}
测试结果:PASS,预期结果,code:0,执行返回结果:{"code":0,"data":"1456886625266065410"}
<--测试用例描述:新增部门_重复校验-->
{
    "organizationName": "orgName_ifgdhfcffg",
    "organizationParentId": "0",
    "remark": "AUTO"
}
测试结果:PASS,预期结果,code:600126,执行返回结果:{"code":600126,"msg":"同级组织名称不能重复"}
<--测试用例描述:新增部门_长度校验(目前接口未校验)-->
{
    "organizationName": "longOrgName_9xpfFua5tRjPjodSLOMl",
    "organizationParentId": "0",
    "remark": "AUTO"
}
测试结果:PASS,预期结果,code:0,执行返回结果:{"code":0,"data":"1456886631406526465"}
<--测试用例描述:修改部门-->
{
    "organizationId": "1456886619117215746",
    "organizationName": "orgName_new_gdhehaaabh",
    "remark": "修改备注"
}
测试结果:PASS,预期结果,code:0,执行返回结果:{"code":0}
<--测试用例描述:删除部门_存在下级-->
1456886619117215746
测试结果:PASS,预期结果,code:600127,执行返回结果:{"code":600127,"msg":"存在下级组织"}
<--测试用例描述:删除子部门-->
1456886622380384258
测试结果:PASS,预期结果,code:0,执行返回结果:{"code":0}
<--测试用例描述:删除部门-->
1456886619117215746
测试结果:PASS,预期结果,code:0,执行返回结果:{"code":0}
<--测试用例描述:新增用户-->
{
    "trueName": "trueUserName_jebdcgdefd",
    "roleIdList": [
        "0000",
        "1000100000"
    ],
    "organizationCodeArr": [
        "0"
    ],
    "organizationCode": "0",
    "loginPassword": "userPwd_fjajijjjjj",
    "mobile": "13581680989",
    "userName": "userName_jdjbfcjhac",
    "userDescribe": "JavaAuto用户描述",
    "email": "java@auto.com"
}
测试结果:PASS,预期结果,code:0,执行返回结果:{"code":0}
<--测试用例描述:新增用户_用户名为空验证-->
{
    "trueName": "trueUserName_jebdcgdefd",
    "roleIdList": [
        "0000",
        "1000100000"
    ],
    "organizationCodeArr": [
        "0"
    ],
    "organizationCode": "0",
    "loginPassword": "userPwd_fjajijjjjj",
    "mobile": "13581680989",
    "userName": "",
    "userDescribe": "JavaAuto用户描述",
    "email": "java@auto.com"
}
测试结果:PASS,预期结果,code:600001,执行返回结果:{"code":600001,"msg":"用户名不能为空"}
<--测试用例描述:新增用户_用户名重复验证-->
{
    "trueName": "trueUserName_jebdcgdefd",
    "roleIdList": [
        "0000",
        "1000100000"
    ],
    "organizationCodeArr": [
        "0"
    ],
    "organizationCode": "0",
    "loginPassword": "userPwd_fjajijjjjj",
    "mobile": "13581680989",
    "userName": "userName_jdjbfcjhac",
    "userDescribe": "JavaAuto用户描述",
    "email": "java@auto.com"
}
测试结果:PASS,预期结果,code:600106,执行返回结果:{"code":600106,"msg":"用户名已经存在"}
<--测试用例描述:新增用户_长度验证(目前接口未校验)-->
{
    "trueName": "trueUserName_jebdcgdefd",
    "roleIdList": [
        "0000",
        "1000100000"
    ],
    "organizationCodeArr": [
        "0"
    ],
    "organizationCode": "0",
    "loginPassword": "userPwd_fjajijjjjj",
    "mobile": "13581680989",
    "userName": "longUserName_vm6gYnAJTFCWeO4Les3P",
    "userDescribe": "JavaAuto用户描述",
    "email": "java@auto.com"
}
测试结果:PASS,预期结果,code:0,执行返回结果:{"code":0}
<--测试用例描述:查询用户-->
{"page":1,"limit":20}
测试结果:PASS,预期结果,code:0,执行返回结果,code:0
1456886660745682946
[1456886693775826945]
<--测试用例描述:修改用户-->
{
    "trueName": "trueUserName_new_heicbjehgh",
    "roleIdList": [
        "0000",
        "1000100000"
    ],
    "organizationCodeArr": [
        "0"
    ],
    "organizationCode": "0",
    "loginPassword": "userPwd_fjajijjjjj",
    "mobile": "13581680989",
    "userName": "userName_jdjbfcjhac",
    "userDescribe": "用户描述修改",
    "userId": "1456886660745682946",
    "email": "java@auto.com"
}
测试结果:PASS,预期结果,code:0,执行返回结果:{"code":0}
<--测试用例描述:删除用户-->
1456886660745682946
测试结果:PASS,预期结果,code:0,执行返回结果:{"code":0}
<--teardown()-->
1456886596119846914,角色新增的多余数据删除成功,{"code":0}
1456886625266065410,部门新增的多余数据删除成功,{"code":0}
1456886631406526465,部门新增的多余数据删除成功,{"code":0}
1456886693775826945,用户新增的多余数据删除成功,{"code":0}
===========用户权限管理的接口自动化测试,End===========
[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 42.196 s - in TestSuite
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  48.939 s
[INFO] Finished at: 2021-11-06T15:30:36+08:00
[INFO] ------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁儿数据安全

您的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值