前言
几个月前学会了小黄瓜的使用,从零到掌握可能花了快一周吧。一个挺强大的插件的,做开发、测试的人都会用到。
正文
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 |
同时只需要配合文件读写等方法就可以做到:
读取入参--》执行--》读取正确结果和出参比较
这样就算是一次比较完整的小黄瓜使用体验啦~