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


相关推荐

  • npm ERR! code E404 npm ERR! 404 Not Found – GET https://registry.npmjs.com/@mlamp%2fuser-info-dropdo

    npm ERR! code E404 npm ERR! 404 Not Found – GET https://registry.npmjs.com/@mlamp%2fuser-info-dropdonpmERR!codeE404npmERR!404NotFound-GEThttps://registry.npmjs.com/@mlamp%2fuser-info-dropdown-Notfound当我npminstall的时候出现这个错误原因是npm源指向的问题执行:npmconfigsetregistryhttps://registry.npmjs.org/问题的原因出现在:在Vue/react/angular框架中打包和编译时报错。使用指令为项目

    2025年7月30日
    7
  • Windows系统好用的文本编辑器[通俗易懂]

    Windows系统好用的文本编辑器[通俗易懂]文章目录Windows系统好用的文本编辑器建议notepad3notepad++EmEditorsublimetext3vscodeWindows系统好用的文本编辑器win上默认的编辑器中文名叫[记事本],英文是[notepad],功能很弱…不知道为什么有的人说功能强大,明明撤回功能都只能返回一步的。目前win上有很多好用的编辑器,我只是用了几种,推荐顺便分析一下.链接:https://pan.baidu.com/s/1ZTfl6JtU11_1zuBnspoqYQ提取码:kpth通用优

    2022年5月4日
    582
  • 保姆级教程!DeepSeek+Chatbox 10分钟搭建AI应用全攻略

    保姆级教程!DeepSeek+Chatbox 10分钟搭建AI应用全攻略

    2026年3月16日
    2
  • linux如何删除tree命令,误删tree命令如何恢复

    linux如何删除tree命令,误删tree命令如何恢复误删tree命令如何恢复考察rpm,yum的用法一、删除tree命令,tree命令不可用[root@centos7~]#whichtree/usr/bin/tree[root@centos7~]#rm-f/usr/bin/tree[root@centos7~]#tree.bash:tree:commandnotfound…二、直接yum或rpm安装将提示tree已经…

    2022年7月24日
    15
  • Chromium网页CPU光栅化原理分析

    Chromium网页CPU光栅化原理分析Chromium 除了支持网页分块 GPU 光栅化 还支持 CPU 光栅化 GPU 光栅化的特点是快 缺点是硬件之间可能会导差异性 以及不是所有的绘图操作硬件都能很好地支持 CPU 光栅化的特点是通用 以及能够支持所有的绘图操作 缺点是较慢 特别是在网页使用硬件加速渲染的情况下 CPU 的光栅化结果还需要上传到 GPU 去渲染 本文接下来将详细分析 CPU 光栅化的原理 着重描述它是如何快速地光栅化结果上传到 GPU 去的

    2026年3月26日
    2
  • goland 2021.5 激活码【注册码】

    goland 2021.5 激活码【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    62

发表回复

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

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