51Testing软件测试论坛

标题: Spring-boot + Cucumber测试配置介绍 [打印本页]

作者: 巴黎的灯光下    时间: 2019-3-1 16:17
标题: Spring-boot + Cucumber测试配置介绍
目前Spring-boot成为了java开发的主流框架,Cucumber作为一款支持dsl的自动化测试工具,很适合用户编写DSL优化过的单元测试等测试用例。本文将讲解如何在SpringBoot中配置Cucumber进行自动化测试。
目录结构如下:
[attach]122503[/attach]、
gradle相关配置如下所示:
  1. <properties>
  2.         <!-- 集成测试依赖 -->
  3.         <cucumber.java.version>1.2.5</cucumber.java.version>
  4.     </properties>
  5. <!--start 集成测试 -->
  6.         <dependency>
  7.             <groupId>org.glassfish.jersey.core</groupId>
  8.             <artifactId>jersey-common</artifactId>
  9.             <version>2.22.2</version>
  10.             <scope>test</scope>
  11.         </dependency>

  12.         <dependency>
  13.             <groupId>info.cukes</groupId>
  14.             <artifactId>cucumber-core</artifactId>
  15.             <version>${cucumber.java.version}</version>
  16.             <scope>test</scope>
  17.         </dependency>

  18.         <dependency>
  19.             <groupId>info.cukes</groupId>
  20.             <artifactId>cucumber-java</artifactId>
  21.             <version>${cucumber.java.version}</version>
  22.             <scope>test</scope>
  23.         </dependency>

  24.         <dependency>
  25.             <groupId>info.cukes</groupId>
  26.             <artifactId>cucumber-junit</artifactId>
  27.             <version>${cucumber.java.version}</version>
  28.             <scope>test</scope>
  29.         </dependency>

  30.         <dependency>
  31.             <groupId>info.cukes</groupId>
  32.             <artifactId>cucumber-spring</artifactId>
  33.             <version>${cucumber.java.version}</version>
  34.             <scope>test</scope>
  35.         </dependency>
  36.         <dependency>
  37.             <groupId>com.github.javafaker</groupId>
  38.             <artifactId>javafaker</artifactId>
  39.             <version>0.14</version>
  40.             <scope>test</scope>
  41.         </dependency>
  42.         <!--end 集成测试 -->
复制代码

src中为常见的spring代码结构,我们不再具体讲解。test文件夹中上边为自带的SpringBootTest测试框架,而demo中的内容是Cucumber框架的具体配置。

1.首先我们需要配置基本的Cucumber框架CucumberTest.java:

  1. @RunWith(Cucumber.class)
  2. @CucumberOptions(features = "src/test/resources")
  3. public class CucumberTest {
  4. }
复制代码

2.接下来,我们要配置有关Spring-boot的配置,因为我们的测试框架也需要在springboot的运行下完成AbstractDefs.java:

  1. @RunWith(SpringJUnit4ClassRunner.class)
  2. @ContextConfiguration(classes = TestSpringMongoApplication.class)
  3. @WebAppConfiguration
  4. @SpringBootTest
  5. public class AbstractDefs
  6. {
  7. }
复制代码

3.然后,我们便开始写属于我们的DSL解析语法,可具体的测试流程TestSteps.java:

  1. import com.tiandi.service.FaultInjectionInfoService;
  2. import cucumber.api.java.en.And;
  3. import cucumber.api.java.en.Given;
  4. import cucumber.api.java.en.Then;
  5. import cucumber.api.java.en.When;
  6. import org.springframework.beans.factory.annotation.Autowired;

  7. public class TestSteps extends AbstractDefs {
  8.     @Autowired
  9.     private FaultInjectionInfoService faultInjectionInfoService;

  10.     private String faultNodeId;

  11.     @Given("^Generate testCase for \"([^\"]*)\"$")
  12.     public void generateTestCase(String id) {
  13.         faultNodeId = id;
  14.     }

  15.     @Then("^finish$")
  16.     public void finish() {
  17.         faultInjectionInfoService.generateTestCase(faultNodeId);
  18.     }
  19. }
  20. //在这里,我们通过Autowired注入了spring中的service,并编写用户自定义的DSL来调用service中的方法执行,获得测试结果。
复制代码

4.最后,我们在resources中填写具体的黄瓜测试用例,并执行。

  1. Feature: test cucumber
  2.   Scenario: system out print something
  3.     Given Generate testCase for "COM-COM-F"
  4.     Then finish
复制代码

5.测试结果如图所示

[attach]122504[/attach]

绿色代表测试通过







欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2