Cucumber(小黄瓜)的使用

前言

几个月前学会了小黄瓜的使用,从零到掌握可能花了快一周吧。一个挺强大的插件的,做开发、测试的人都会用到。

正文

1.Cucumber(小黄瓜)
官网:http://cucumber.io/
其他作者的解释:https://www.jianshu.com/p/3857f2c3a8d4
cucumber是BDD(Behavior-driven development,行为驱动开发)的一个自动化测试的副产品。它使用自然语言来描述测试,使得非程序员可以理解他们。Gherkin是这种自然语言测试的简单语法,而Cucumber是可以执行它们的工具。
总之,作为一个JAVA程序员知道他可以用来按照场景一次一次调用你的服务就对了。并且你可以写自己的断言,来判断程序执行的正确与否。
2.如何使用
本人一开始是Eclipse的忠实用户,事实上使用Eclipse学习小黄瓜也是非常方便的,只需要下载其插件。
但是渐渐地我变心了,我喜欢上了Idea编译器,发现他更方便更好用。但是原来的小黄瓜也不能运行了。需要到父工程的pom文件添加以下依赖:

   <dependency>
                <groupId>info.cukes</groupId>
                <artifactId>cucumber-java</artifactId>
                <version>1.2.4</version>
            </dependency>
            <dependency>
                <groupId>info.cukes</groupId>
                <artifactId>cucumber-spring</artifactId>
                <version>1.2.4</version>
            </dependency>
            <dependency>
                <groupId>info.cukes</groupId>
                <artifactId>cucumber-junit</artifactId>
                <version>1.2.4</version>
            </dependency>
            <dependency>
                <groupId>info.cukes</groupId>
                <artifactId>cucumber-picocontainer</artifactId>
                <version>1.2.4</version>
            </dependency>
            <dependency>
                <groupId>info.cukes</groupId>
                <artifactId>cucumber-core</artifactId>
                <version>1.2.4</version>
            </dependency>

简单地来说依赖Cucumber并撰写胶水代码我们就可以实现自动化测试。
3.编写胶水代码
在test\java中写入两个类
(1)启动类TestStart.java

@SpringBootTest
@RunWith(Cucumber.class)
@CucumberOptions(features = PoolBugTest.features_dir,plugin = { "junit:target/cucumber-report.xml",
        "json:target/cucumber-report.json", "pretty", "html:target/site/cucumber"})
public class TestStart{
    public static final String features_dir = "classpath:fff/联测.feature";
    public static void main(String[] args) throws IOException {
        Main.run(args, Thread.currentThread().getContextClassLoader());
    }
}

(2)胶水代码BDD

@ContextConfiguration
@SpringBootTest(classes = ProductApplication.class)
public class BDD {
    @Autowired
    ServiceImp consumer;
    public  String newday="";
    @Given("^给定一个代号:(.*)$")
    public void givenFilename(String Filename) throws IOException {
        newday=Filename+"newday";
    }
    @When("^开始进行Debug$")
    public void markTag() {
        consumer.execute(newday);
    }
    @Then("^比较且一致$")
    public void compareMctReq() throws Throwable {
        assert(compareReq());
    }
      private boolean compareReq(){
            return true;
    }
}

(3)启动项读取的模板“联测.feature”

Feature: cucumber全流程测试
  Scenario Outline:
    Given 给定一个代号:<ID>
    When 开始进行Debug
    Then 比较且一致
    Examples:
      | ID                |
      |0001               |
      |0002               |
      |0003               |

同时只需要配合文件读写等方法就可以做到:

读取入参--》执行--》读取正确结果和出参比较

这样就算是一次比较完整的小黄瓜使用体验啦~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。