1分钟入门接口自动化框架Karate

1分钟入门接口自动化框架Karate介绍在这篇文章中 我们将介绍一下开源的 Web API 自动化测试框架 KarateKarate 是基于另一个 BDD 测试框架 Cucumber 来建立的 并且共用了一些相同的思想 其中之一就是使用 Gherkin 文件 该文件描述了被测试的功能与 Cucumber 不同的是测试用例不需要用 Java 编写 并且被完整的描述在 Gherkin 文件中通过 Karate 您可以编写任何类型的 Web 服务端的测试脚

介绍

在这篇文章中,我们将介绍一下开源的Web-API自动化测试框架——Karate

Karate是基于另一个BDD测试框架Cucumber来建立的,并且共用了一些相同的思想。其中之一就是使用Gherkin文件,该文件描述了被测试的功能

与Cucumber不同的是测试用例不需要用Java编写,并且被完整的描述在Gherkin文件中

通过Karate,您可以编写任何类型的Web服务端的测试脚本,并检查响应是否符合预期

Karate的验证引擎可以灵活的比较两个JSON或XML文件内容,不受空格和数据顺序的影响

有关Karate的更详细的内容,请参考Karate官方介绍

特点

  1. 建立在Cucumber-JVM基础上
  2. 可以像标准的Java工程一样运行测试并且产生报告
  3. 测试代码的开发不需要掌握任何的Java知识
  4. 即使对非编程人员,测试代码也很容易编写

环境需求

  1. JDK1.8及以上
  2. Maven
  3. IDEA

使用

创建工程

1.打开IDEA,File|New|Project

1分钟入门接口自动化框架Karate

2.选择Maven工程,点击Next

1分钟入门接口自动化框架Karate

3.输入Maven基本信息,点击Next

1分钟入门接口自动化框架Karate

4.输入工程名称和存放路径,点击Finish

1分钟入门接口自动化框架Karate

添加依赖

要在Maven项目中使用Karate,需要将karate-apache依赖项添加到pom.xml,如果实现JUnit测试还需要添加karate-junit4依赖








com.intuit.karate



karate-apache



0.8.0



test













com.intuit.karate



karate-junit4



0.8.0



test







设置测试资源文件目录,建议测试用例文件和java文件放在同一个目录下,遇到庞大的工程的时候方便管理,不必在文件夹src/test/java和src/test/resources文件夹之间切换,可以在pom.xml的








src/test/java






/*.java













服务端模拟

为了演示REST API,我们使用WireMock服务器

在pom.xml中添加mock服务依赖配置





com.github.tomakehurst



wiremock-standalone



2.18.0



test







编写一个启动服务的类

package server;

import com.github.tomakehurst.wiremock.WireMockServer;

import static com.github.tomakehurst.wiremock.client.WireMock.*;

public class StartServer {

private static WireMockServer wireMockServer = new WireMockServer(8080);

}

用例文件编写

一个用例文件以“ .feature”扩展名保存。

文件以Feature关键字开头,在同一行跟着所测试的功能名称

一个用例文件包含不同的测试场景,每个场景都以关键字Scenario开头,并且包含多个步骤。这些步骤包含关键字Given,When,Then,And和But

有关Cucumber和Gherkin结构的更多信息,请点击此处

Feature: Learn How to use Karate for testing.

Scenario: Testing valid GET endpoint

Scenario: Testing the exact response of a GET endpoint

Scenario: Testing that GET response contains specific field

我向大家推荐一个学习资料领取的。这套视频资料详细讲解了(自动化编程,mysql调优,自动化框架使用)。

对以上测试资料,测试技术 感兴趣的朋友,欢迎加:,一起学习,相互讨论。

Runner类编写

建议放在用例文件同级目录下

我们可以通过将Karate与JUnit集成来运行我们的测试

我们将使用@CucumberOptions注解指定Feature文件的具体位置

package demo;

public class DemoRunner {

}

运行用例

1.先启动服务

右击StartServer类选择Run StartServer.main()启动服务

2.运行用例

右击DemoRunner类选择Run DemoRunner运行测试

1分钟入门接口自动化框架Karate

查看报告

在项目的target/surfire-reports目录下有TEST-demo.demo.html文件,浏览器中打开即可看到结果

1分钟入门接口自动化框架Karate

持续集成

可以借助于jenkins完成自动化测试并且jenkins提供插件cucumber-reports可以展示可读性强的自动化测试报告

需要修改Runner继承KarateRunner,先引入Karate-testng依赖





com.intuit.karate



karate-testng



0.8.0






修改DemoRunner,注意配置CucumberOptions,要产生json格式的报告,cucumber-reports插件会去解析该文件并生成报告

package demo;

import com.intuit.karate.junit4.Karate;

 

@CucumberOptions(features = “classpath:demo/demo.

feature”,format={“pretty”,

“html:reports”,”json:report.json”})

public class DemoRunner extends KarateRunner {

}

jenkins中cucumber-reports配置请参考网络资源

jenkins配置命令行运行指令

1分钟入门接口自动化框架Karate

jenkins报告展示

1分钟入门接口自动化框架Karate

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207257.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午2:13
下一篇 2026年3月19日 下午2:13


相关推荐

  • 第十四章《redis》

    第十四章《redis》

    2021年5月29日
    90
  • OpenClaw架构深度解析:无新技术却爆火的底层逻辑

    OpenClaw架构深度解析:无新技术却爆火的底层逻辑

    2026年3月14日
    2
  • 今天开始做战斗,回合制战斗代码实现第一篇补充,从头开始,简单的2d回合制游戏一些文档方面的知识

    今天开始做战斗,回合制战斗代码实现第一篇补充,从头开始,简单的2d回合制游戏一些文档方面的知识上一篇代码贴完了 总是感觉缺少些东西 因为光看代码用时候不是很直观 我们还是需要些文档来辅助理解 好了 所以补充些内容

    2026年3月17日
    2
  • 木马入门

    木马入门木马是如何编写的(一)特洛依木马这个名词大家应该不陌生,自从98年“死牛崇拜”黑客小组公布BackOrifice以来,木马犹如平地上的惊雷,使在Dos——Windows时代中长大的中国网民从五彩缤纷的网络之梦中惊醒,终于认识到的网络也有它邪恶的一面,一时间人心惶惶。  我那时在《电脑报》上看到一篇文章,大意是一个菜鸟被人用BO控制了,吓得整天吃不下饭、睡不着觉、上不了网,到处求救!

    2022年6月29日
    33
  • Teradata SQL 笔记

    Teradata SQL 笔记HELP 帮助用户了解数据库中各种对象的结构 nbsp SHOW 帮助用户了解某种对象的定义 即返回其 DDL 语句 nbsp EXPLAIN 返回一个 SQL 语句经优化处理后的执行步骤 注意并未真正执行 nbsp FALLBACK 对数据加以保护的一种方式 是冗余的备份 nbsp RENAME 对表重命名 nbsp NULLIFZERO 对数据作累计处理时 忽略零值 nbsp ZEROIFNULL 对数据作累计处理时 将空值作零处理 nbsp

    2026年3月17日
    2
  • 图形推理专项突破训练1000题及详解_行测图形推理题怎么搜答案

    图形推理专项突破训练1000题及详解_行测图形推理题怎么搜答案图形推理是很常见的推理题型,在做这类型题目的时候,同学们出现了”两极分化”的特征,有的同学很快找到规律,做出了题目,有的同学却一直看着第一题”百思不得其解”。出现这样的情况,其根本原因在于图形推理是技巧性很强的题目,如果知道技巧,可以很快知道出题人考查的重点,从而快速联想到可会考的规律。下面我们一起来看一下图形推理的规(tao)律(lu):第一层:相似性相异(图形差距很大)→数量关系相同(图形差距…

    2025年10月17日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号