简介
karate是一款自动化测试框架,使用Cucumber推广的BDD语法,强大的语法支持,简单通俗易懂。
优点
建立在Cucumber基础上
可以像标准的Java工程一样运行测试并且产生报告
测试代码的开发不需要掌握任何的Java知识
即使对非编程人员,测试代码也很容易编写
可以灵活切换环境
插件支持
支持很多协议
Maven引入
<dependency>
<groupId>com.intuit.karate</groupId>
<artifactId>karate-apache</artifactId>
<version>0.9.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.intuit.karate</groupId>
<artifactId>karate-junit5</artifactId>
<version>0.9.5</version>
<scope>test</scope>
</dependency>
除了以上的依赖引入还需要对pom文件进行修改
<build>
<testResources>
<testResource>
<directory>src/test/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
</testResources>
<plugins>
...
</plugins>
</build>
设置测试代码存放的文件,修改src/test/java和src/test/resources文件夹中,测试代码和工件放在src/test/java一切都会如愿以偿。
命名规范
src/test/java
|
+-- karate-config.js
+-- logback-test.xml
+-- some-reusable.feature
+-- some-classpath-function.js
+-- some-classpath-payload.json
|
\-- animals
|
+-- AnimalsTest.java
|
+-- cats
| |
| +-- cats-post.feature
| +-- cats-get.feature
| +-- cat.json
| \-- CatsRunner.java
|
\-- dogs
|
+-- dog-crud.feature
+-- dog.json
+-- some-helper-function.js
\-- DogsRunner.java
按照官方例子进行命名比较好
Junit4集成
package animals.cats;
import com.intuit.karate.junit4.Karate;
import org.junit.runner.RunWith;
@RunWith(Karate.class)
public class CatsRunner {
}
按照这样执行,要和你的*.feature放在一起才可以
Junit5集成
@Karate.Test
KaratetestSample1() {
returnKarate.run("userTest").relativeTo(getClass());
}
//测试加载testOne文件中的@first的测试用例
@Karate.Test
KaratetestSample2() {
returnKarate.run("testOne").tags("@first").relativeTo(getClass());
}
//测试加载testOne文件中的@first的测试用例(另外一种写法)
@Karate.Test
KaratetestSample3() {
returnKarate.run("classpath:com/karate/testOne.feature").tags("@second");
}
这有三种方法进行执行脚本,
feature内容:
Feature: tags test
@first
Scenario: first
* print 'first'
@second
Scenario: second
* print 'second'
结束语:
这是简单的搭建,具体的语法还有细节需要下节才写出来,要是有疑问可以留言问我,嘻嘻,一起进步。