51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1684|回复: 0
打印 上一主题 下一主题

Spring-boot + Cucumber测试配置介绍

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-3-1 16:17:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前Spring-boot成为了java开发的主流框架,Cucumber作为一款支持dsl的自动化测试工具,很适合用户编写DSL优化过的单元测试等测试用例。本文将讲解如何在SpringBoot中配置Cucumber进行自动化测试。
目录结构如下:

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.测试结果如图所示

绿色代表测试通过


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-24 23:38 , Processed in 0.063746 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表