美文网首页
Jenkins集成TestNG实现持续集成自动化测试

Jenkins集成TestNG实现持续集成自动化测试

作者: 苏米西 | 来源:发表于2019-07-23 15:50 被阅读0次

一、测试配置

1、编写测试用例

@RunWith(SpringRunner.class)
@SpringBootTest(classes = AdminRun.class)
@AutoConfigureMockMvc
@Slf4j
public class ChannelOrderTest {

    @Autowired
    private OrderChannelTradeService orderChannelTradeService;

    private Logger logger = LoggerFactory.getLogger (this.getClass ());

    @Mock
    private ProceedingJoinPoint pjp;
    String custId="ff808081698b2cbc03146b32dbf90000";// 创建用户
    @Before
    public void setUp() throws Exception {

    }

    @Test
    public void createAccount() throws Throwable {
        System.out.println (" testNg  测试");
    }

2、创建用例启动执行文件

testng.xml

<?xml version="1.0" encoding="utf-8" ?>
<suite name="TesterHome" parallel="tests" thread-count="2"> <!-- 并行地执行test套件-->
    <parameter name="appURL" value="https://testerhome.com/account/sign_in"/>
    <parameter name="browserType" value="chrome"/>
    <parameter name="driverPath" value="C:\Program Files (x86)\Google\Chrome\Application\"/>

    <test name="admin">
        <classes>
            <class name="ChannelOrderTest" />
            <class name="AccountTest" />
        </classes>
    </test>
</suite>

3、配置pom.xml

可参考maven官方配置
网址:http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html

3.1、加入testng依赖
   <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.9.8</version>
            <scope>test</scope>
   </dependency>
3.2、加入插件执行用例
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M3</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>src/test/java/testng.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>

加入maven-surefire-plugin插件以及指定用例启动执行文件路径!

二、jenkins配置

1、被测系统和测试代码在同一项目下

在原有配置基础上修改以下配置

1563864126929.png

参数:

  • -DskipTests=true,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。
  • -Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。
    如果需要编译测试用例,建议使用第一个参数,当然第二个也行的,只不过需要改为false才行!就是不跳过的意思!


    1563864373334.png

    构建后操作


    1563865213712.png

2、被测系统和测试代码不在同一项目下

构建触发器选择其他工程构建后触发,填写你的被测系统项目


1563864593675.png

然后构建后执行,打印报告


1563865114868.png

三、收集报告

1、执行项目

可以看到tests run!


1563865443886.png

2、生成报告!

1563865369639.png

四、目录结构

.
├── pom.xml
├── src
│   ├── main
│   │   ├── java
│   │   │   ├── com
│   │   │   │   └── k3
│   │   │   │       └── npc
│   │   │   │           └── admin
│   │   │   │               ├── AdminRun.java
│   │   │   │               ├── common
│   │   │   │               │   ├── action
│   │   │   │               │   │   └── aop
│   │   │   │               │   ├── annotation
│   │   │   │               │   │   └── InsertLog.java
│   │   │   │               │   ├── configuration
│   │   │   │               │   │   ├── ConfigurerAdapter.java
│   │   │   │               │   │   ├── redis
│   │   │   │               │   │   ├── StarCommandLineRunner.java
│   │   │   │               │   │   └── swagger2
│   │   │   │               │   ├── contants
│   │   │   │               │   │   └── SystemContants.java
│   │   │   │               │   └── enums
│   │   │   │               │       └── AdminEnums.java
│   │   │   │               ├── modules
│   │   │   │               │   ├── adjust
│   │   │   │               │   │   ├── controller
│   │   │   │               │   │   ├── request
│   │   │   │               │   │   ├── response
│   │   │   │               │   │   └── service
│   │   │   │               │   ├── basic
│   │   │   │               │   │   ├── contract
│   │   │   │               │   │   ├── controller
│   │   │   │               │   │   └── service
│   │   │   │               │   ├── cap
│   │   │   │               │   │   ├── contract
│   │   │   │               │   │   ├── controller
│   │   │   │               │   │   ├── service
│   │   │   │               │   │   └── utils
│   │   │   │               │   ├── cashier
│   │   │   │               │   │   ├── controller
│   │   │   │               │   │   ├── request
│   │   │   │               │   │   ├── response
│   │   │   │               │   │   └── service
│   │   │   │               │   ├── cust
│   │   │   │               │   │   ├── contract
│   │   │   │               │   │   ├── controller
│   │   │   │               │   │   ├── request
│   │   │   │               │   │   ├── response
│   │   │   │               │   │   └── service
│   │   │   │               │   ├── monitor
│   │   │   │               │   │   ├── config
│   │   │   │               │   │   ├── contract
│   │   │   │               │   │   ├── controller
│   │   │   │               │   │   └── service
│   │   │   │               │   ├── security
│   │   │   │               │   │   ├── config
│   │   │   │               │   │   ├── controller
│   │   │   │               │   │   ├── jwt
│   │   │   │               │   │   ├── security
│   │   │   │               │   │   └── service
│   │   │   │               │   └── system
│   │   │   │               │       ├── contract
│   │   │   │               │       ├── controller
│   │   │   │               │       └── service
│   │   │   │               └── util
│   │   │   │                   ├── SecurityContextUtil.java
│   │   │   │                   └── SendHelp.java
│   │   │   └── META-INF
│   │   │       └── MANIFEST.MF
│   │   └── resources
│   │       ├── banner.txt
│   │       ├── config
│   │       │   ├── application-dev.yml
│   │       │   ├── application-prod.yml
│   │       │   ├── application-release.yml
│   │       │   ├── application-test.yml
│   │       │   └── application.yml
│   │       ├── log4jdbc.log4j2.properties
│   │       ├── logback-spring.xml
│   │       └── template
│   │           └── email
│   │               └── email.ftl
│   └── test
│       └── java
│           ├── AccountTest.java
│           ├── ChannelOrderTest.java
│           └── testng.xml
└── target
    ├── classes
    │   ├── banner.txt
    │   ├── com
    │   │   └── k3
    │   │       └── npc
    │   │           └── admin
    │   │               ├── AdminRun.class
    │   │               ├── common
    │   │               │   ├── action
    │   │               │   │   └── aop
    │   │               │   │       └── InsertLogAspect.class
    │   │               │   ├── annotation
    │   │               │   │   └── InsertLog.class
    │   │               │   ├── configuration
    │   │               │   │   ├── ConfigurerAdapter.class
    │   │               │   │   ├── redis
    │   │               │   │   │   ├── FastJsonRedisSerializer.class
    │   │               │   │   │   ├── RedisConfig.class
    │   │               │   │   │   └── StringRedisSerializer.class
    │   │               │   │   ├── StarCommandLineRunner.class
    │   │               │   │   └── swagger2
    │   │               │   │       ├── SwaggerConfig.class
    │   │               │   │       ├── SwaggerDataConfig$1.class
    │   │               │   │       ├── SwaggerDataConfig.class
    │   │               │   │       └── SwaggerDataConfig$Page.class
    │   │               │   ├── contants
    │   │               │   │   └── SystemContants.class
    │   │               │   └── enums
    │   │               │       └── AdminEnums.class
    │   │               ├── modules
    │   │               │   ├── adjust
    │   │               │   │   ├── controller
    │   │               │   │   │   ├── PastAccountController.class
    │   │               │   │   │   ├── PastRecordController.class
    │   │               │   │   │   └── SujectInfoController.class
    │   │               │   │   ├── request
    │   │               │   │   │   ├── PastAccountRequest.class
    │   │               │   │   │   ├── PastIdRequest.class
    │   │               │   │   │   ├── PastRecordRequest.class
    │   │               │   │   │   └── SujectInfoRequest.class
    │   │               │   │   ├── response
    │   │               │   │   │   ├── PastAccountResponse.class
    │   │               │   │   │   ├── PastRecordResponse.class
    │   │               │   │   │   └── SujectInfoResponse.class
    │   │               │   │   └── service
    │   │               │   │       ├── impl
    │   │               │   │       ├── PastAccountService.class
    │   │               │   │       ├── PastRecordService.class
    │   │               │   │       └── SujectInfoService.class
    │   │               │   ├── basic
    │   │               │   │   ├── contract
    │   │               │   │   │   ├── request
    │   │               │   │   │   └── response
    │   │               │   │   ├── controller
    │   │               │   │   │   ├── AdvertisingDeatilController.class
    │   │               │   │   │   ├── AdvertisingInfoController.class
    │   │               │   │   │   ├── AppVersionController.class
    │   │               │   │   │   ├── BasicDataPlaceController.class
    │   │               │   │   │   ├── BasicJointDataController.class
    │   │               │   │   │   ├── ChannelInfoController.class
    │   │               │   │   │   ├── NoticeInfoController.class
    │   │               │   │   │   ├── SendRecviceLogController.class
    │   │               │   │   │   ├── SmsMessageController.class
    │   │               │   │   │   └── SmsTemplateController.class
    │   │               │   │   └── service
    │   │               │   │       ├── AdvertisingDeatilService.class
    │   │               │   │       ├── AdvertisingInfoService.class
    │   │               │   │       ├── AppVersionService.class
    │   │               │   │       ├── BasicDataPlaceService.class
    │   │               │   │       ├── BasicJointDataService.class
    │   │               │   │       ├── ChannelInfoService.class
    │   │               │   │       ├── dto
    │   │               │   │       ├── impl
    │   │               │   │       ├── NoticeInfoService.class
    │   │               │   │       ├── SendRecviceLogService.class
    │   │               │   │       ├── SmsMessageService.class
    │   │               │   │       └── SmsTemplateService.class
    │   │               │   ├── cap
    │   │               │   │   ├── contract
    │   │               │   │   │   ├── request
    │   │               │   │   │   └── response
    │   │               │   │   ├── controller
    │   │               │   │   │   ├── CapAccountCodeController.class
    │   │               │   │   │   ├── CapAccountController.class
    │   │               │   │   │   ├── CapAccountFlowController.class
    │   │               │   │   │   ├── CapBankController.class
    │   │               │   │   │   ├── CapFrozenController.class
    │   │               │   │   │   ├── CapFrozenFlowController.class
    │   │               │   │   │   ├── MarkCodeController.class
    │   │               │   │   │   └── MarkDetailController.class
    │   │               │   │   └── service
    │   │               │   │       ├── CapAccountCodeService.class
    │   │               │   │       ├── CapAccountFlowService.class
    │   │               │   │       ├── CapAccountService.class
    │   │               │   │       ├── CapBankService.class
    │   │               │   │       ├── CapExtractService.class
    │   │               │   │       ├── CapFrozenFlowService.class
    │   │               │   │       ├── CapFrozenService.class
    │   │               │   │       ├── CapPayAlipayOrderService.class
    │   │               │   │       ├── impl
    │   │               │   │       ├── MarkCodeService.class
    │   │               │   │       ├── MarkDetailService.class
    │   │               │   │       └── utils
    │   │               │   ├── cashier
    │   │               │   │   ├── controller
    │   │               │   │   │   ├── ChannelParameterController.class
    │   │               │   │   │   ├── CpConfigController.class
    │   │               │   │   │   ├── DeskInfoController.class
    │   │               │   │   │   ├── OrderChannelTradeController.class
    │   │               │   │   │   ├── OrderIncomeController.class
    │   │               │   │   │   ├── OrderInfoController.class
    │   │               │   │   │   ├── OrderQueryController.class
    │   │               │   │   │   ├── OrderRefundController.class
    │   │               │   │   │   └── PayInfoController.class
    │   │               │   │   ├── request
    │   │               │   │   │   ├── ChannelParameterRequest.class
    │   │               │   │   │   ├── CpConfigRequest.class
    │   │               │   │   │   ├── CreateOrderRequest.class
    │   │               │   │   │   ├── DeskConfigRequest.class
    │   │               │   │   │   ├── DeskInfoAddRequest.class
    │   │               │   │   │   ├── DeskInfoRequest.class
    │   │               │   │   │   ├── OrderChannelTradeRequest.class
    │   │               │   │   │   ├── OrderIdRequest.class
    │   │               │   │   │   ├── OrderIncomeRequest.class
    │   │               │   │   │   ├── OrderInfoRequest.class
    │   │               │   │   │   ├── OrderQueryRequest.class
    │   │               │   │   │   ├── OrderRefundRequest.class
    │   │               │   │   │   └── PayInfoRequest.class
    │   │               │   │   ├── response
    │   │               │   │   │   ├── ChannelParameterResponse.class
    │   │               │   │   │   ├── CpConfigResponse.class
    │   │               │   │   │   ├── CreateOrderResponse.class
    │   │               │   │   │   ├── DeskConfigResponse.class
    │   │               │   │   │   ├── DeskInfo3kResponse.class
    │   │               │   │   │   ├── DeskInfoResponse.class
    │   │               │   │   │   ├── OrderChannelTradeResponse.class
    │   │               │   │   │   ├── OrderDetailResponse.class
    │   │               │   │   │   ├── OrderIncomeResponse.class
    │   │               │   │   │   ├── OrderInfoResponse.class
    │   │               │   │   │   ├── OrderQueryResponse.class
    │   │               │   │   │   ├── OrderRefundResponse.class
    │   │               │   │   │   └── PayInfoResponse.class
    │   │               │   │   └── service
    │   │               │   │       ├── ChannelParameterService.class
    │   │               │   │       ├── CpConfigService.class
    │   │               │   │       ├── DeskConfigService.class
    │   │               │   │       ├── DeskInfoService.class
    │   │               │   │       ├── impl
    │   │               │   │       ├── OrderChannelTradeService.class
    │   │               │   │       ├── OrderIncomeService.class
    │   │               │   │       ├── OrderInfoService.class
    │   │               │   │       ├── OrderQueryService.class
    │   │               │   │       ├── OrderRefundService.class
    │   │               │   │       └── PayInfoService.class
    │   │               │   ├── cust
    │   │               │   │   ├── contract
    │   │               │   │   │   ├── request
    │   │               │   │   │   └── response
    │   │               │   │   ├── controller
    │   │               │   │   │   └── CustInfoController.class
    │   │               │   │   ├── request
    │   │               │   │   │   └── CustInfoRequest.class
    │   │               │   │   ├── response
    │   │               │   │   │   └── CustInfoResponse.class
    │   │               │   │   └── service
    │   │               │   │       ├── CustInfoService.class
    │   │               │   │       └── impl
    │   │               │   ├── monitor
    │   │               │   │   ├── config
    │   │               │   │   │   ├── LogFilter.class
    │   │               │   │   │   ├── LoggerQueue.class
    │   │               │   │   │   ├── WebSocketConfig$1.class
    │   │               │   │   │   └── WebSocketConfig.class
    │   │               │   │   ├── contract
    │   │               │   │   │   └── response
    │   │               │   │   ├── controller
    │   │               │   │   │   ├── LimitController.class
    │   │               │   │   │   └── RedisController.class
    │   │               │   │   └── service
    │   │               │   │       ├── impl
    │   │               │   │       └── RedisService.class
    │   │               │   ├── security
    │   │               │   │   ├── config
    │   │               │   │   │   └── SecureConfig.class
    │   │               │   │   ├── controller
    │   │               │   │   │   └── AuthenticationController.class
    │   │               │   │   ├── jwt
    │   │               │   │   │   └── JwtTokenUtil.class
    │   │               │   │   ├── security
    │   │               │   │   │   ├── AuthenticationToken.class
    │   │               │   │   │   ├── AuthorizationUser.class
    │   │               │   │   │   ├── JwtAuthenticationEntryPoint.class
    │   │               │   │   │   ├── JwtAuthorizationTokenFilter.class
    │   │               │   │   │   └── JwtUser.class
    │   │               │   │   └── service
    │   │               │   │       └── JwtUserDetailsService.class
    │   │               │   └── system
    │   │               │       ├── contract
    │   │               │       │   ├── request
    │   │               │       │   └── response
    │   │               │       ├── controller
    │   │               │       │   ├── AttachmentInfoController.class
    │   │               │       │   ├── AttachmentTypeController.class
    │   │               │       │   ├── DictInfoController.class
    │   │               │       │   ├── DictItemController.class
    │   │               │       │   ├── LogController.class
    │   │               │       │   ├── MenuController.class
    │   │               │       │   ├── PermissionController.class
    │   │               │       │   ├── RoleController.class
    │   │               │       │   ├── UploadController.class
    │   │               │       │   └── UserController.class
    │   │               │       └── service
    │   │               │           ├── AttachmentInfoService.class
    │   │               │           ├── AttachmentTypeService.class
    │   │               │           ├── DictInfoService.class
    │   │               │           ├── DictItemService.class
    │   │               │           ├── dto
    │   │               │           ├── impl
    │   │               │           ├── LogQueryService.class
    │   │               │           ├── LogQueryService$Spec.class
    │   │               │           ├── LogService.class
    │   │               │           ├── mapper
    │   │               │           ├── MenuService.class
    │   │               │           ├── PermissionService.class
    │   │               │           ├── RoleService.class
    │   │               │           └── UserService.class
    │   │               └── util
    │   │                   ├── SecurityContextUtil.class
    │   │                   └── SendHelp.class
    │   ├── config
    │   │   ├── application-dev.yml
    │   │   ├── application-prod.yml
    │   │   ├── application-release.yml
    │   │   ├── application-test.yml
    │   │   └── application.yml
    │   ├── log4jdbc.log4j2.properties
    │   ├── logback-spring.xml
    │   └── template
    │       └── email
    │           └── email.ftl
    ├── generated-sources
    │   └── annotations
    │       └── com
    │           └── k3
    │               └── npc
    │                   └── admin
    │                       └── modules
    │                           └── system
    │                               └── service
    ├── generated-test-sources
    │   └── test-annotations
    ├── maven-archiver
    │   └── pom.properties
    ├── maven-status
    │   └── maven-compiler-plugin
    │       ├── compile
    │       │   └── default-compile
    │       │       ├── createdFiles.lst
    │       │       └── inputFiles.lst
    │       └── testCompile
    │           └── default-testCompile
    │               ├── createdFiles.lst
    │               └── inputFiles.lst
    ├── npc-admin.jar
    ├── npc-admin.jar.original
    ├── surefire-reports
    │   ├── bullet_point.png
    │   ├── collapseall.gif
    │   ├── emailable-report.html
    │   ├── failed.png
    │   ├── index.html
    │   ├── jquery-1.7.1.min.js
    │   ├── junitreports
    │   │   └── TEST-ChannelOrderTest.xml
    │   ├── navigator-bullet.png
    │   ├── old
    │   │   ├── index.html
    │   │   └── TesterHome
    │   │       ├── admin.properties
    │   │       ├── classes.html
    │   │       ├── groups.html
    │   │       ├── index.html
    │   │       ├── main.html
    │   │       ├── methods-alphabetical.html
    │   │       ├── methods.html
    │   │       ├── methods-not-run.html
    │   │       ├── reporter-output.html
    │   │       ├── testng.xml.html
    │   │       └── toc.html
    │   ├── passed.png
    │   ├── skipped.png
    │   ├── TesterHome
    │   │   ├── admin.html
    │   │   └── admin.xml
    │   ├── testng.css
    │   ├── testng-reports.css
    │   ├── testng-reports.js
    │   ├── testng-results.xml
    │   ├── TestSuite.txt
    │   └── TEST-TestSuite.xml
    └── test-classes
        ├── AccountTest.class
        └── ChannelOrderTest.class

相关文章

网友评论

      本文标题:Jenkins集成TestNG实现持续集成自动化测试

      本文链接:https://www.haomeiwen.com/subject/jsqalctx.html