Karate轻松实现自动API测试

news2024/11/15 14:06:03

如果您想做自动API测试,但没有编程背景,那么你必须要给Karate一个机会!

 

Karate由Intuit作为开源工具发布。该工具旨在用于自动API测试,并具有使API测试变得轻而易举且实际上令人愉快的所有必需功能。

与需要大量编码的其他自动化API测试工具不同,即使只是做基本的东西,Karate开箱即用。您可以在不了解任何编程语言的情况下构建最复杂的请求 - 响应操作。您所要做的就是使用纯文本Gherkin样式编写要素文件。

因为Karate是一个完整的DSL并且位于Cucumber-JVM之上 ,所以你可以像任何标准的Java项目一样运行测试并生成报告,但是你不是编写Java代码,而是用一种用来处理HTTP,JSON的语言来编写测试。或XML简单易用。

虽然没有使用Karate的先决条件,但如果您对HTTP,JSON,XML,JsonPath以及XPath和JavaScript有基本的了解,它会有所帮助。

下面,我们将介绍一些您通常在自动API测试中执行的典型操作,但首先是关于为Karate设置环境的快速指南。

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以加裙485187702,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

Maven的

如果您使用的是Maven,则需要以下两个依赖项

<dependency>
    <groupId>com.intuit.karate</groupId>
    <artifactId>karate-apache</artifactId>
    <version>0.6.0</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>com.intuit.karate</groupId>
    <artifactId>karate-junit4</artifactId>
    <version>0.6.0</version>
    <scope>test</scope>
</dependency>

Gradle

或者,如果您使用的是Gradle,则需要

testCompile 'com.intuit.karate:karate-junit4:0.6.0'
testCompile 'com.intuit.karate:karate-apache:0.6.0'

文件夹结构

Karate测试脚本具有文件扩展名 .feature ,后面是Cucumber的标准。您可以使用常规Java包约定来自由组织文件。

Maven的传统是将非Java源文件放在一个单独的 src/test/resources 文件夹结构中 - 但是Karate工具的创建者建议您将它们与*.java 文件并排放置 。

 

Karate Api测试工具 - 文件夹结构 Karate Api测试工具 - 文件夹结构 像Cucumber一样,你需要一个运行特征文件的“Runner”类。然而,与Cucumber不同,没有步骤定义!这就是Karate的魔力。

要使用TestRunner.java类来执行要素文件,您需要在pom.xml文件中包含构建部分。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>Tutorials</groupId>
    <artifactId>Karate</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>com.intuit.karate</groupId>              
            <artifactId>karate-apache</artifactId>            
            <version>0.6.0.4</version>                         
        </dependency>                                          
        <dependency>
            <groupId>com.intuit.karate</groupId>
            <artifactId>karate-junit4</artifactId>
            <version>0.6.0.4</version>
        </dependency>
    </dependencies>
    <build>
        <testResources>
            <testResource>
                <directory>src/test/java</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </testResource>
        </testResources>
    </build>
</project>

你的TestRunner.java类看起来像

package com.tutorials.karate;

import com.intuit.karate.junit4.Karate;
import org.junit.runner.RunWith;

@RunWith(Karate.class)
public class TestRunner {

}

使用Karate进行简单的自动API测试

假设您正在测试API(some-api.com/api/users),…

[
    {
        "id": 1,
        "name": "FirstUser",
        "password": "User1Pass"
    },
    {
     "id": 2,
        "name": "SecondUser",
        "password": "User2Pass"
    }
]

您的Karate功能文件如下所示:

Feature: Test User API
  Scenario: Fetch all users
    Given url 'https://some-api.com/api/users'
    When method GET
    Then status 200
    And assert response.length == 2
    And match response[0].name == 'FirstUser'

就是这样 - 非常简洁,重要的是,没有代码!

Karate具有非常丰富的实用功能,使您能够非常轻松快速地执行自动API测试。在后面,我们将深入研究这个神奇的工具,并举例说明在测试API时如何做任何你需要的东西!

最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

8小时传疯!大厂面试真题全被大佬整理在这个小程序上了!【软件测试,建议收藏】

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础 

  全套资料获取方式:点击下方小卡片自行领取即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1152693.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux常用命令——chkconfig命令

在线Linux命令查询工具 chkconfig 检查或设置系统的各种服务 补充说明 chkconfig命令检查、设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序&#xff0c;它可查询操作系统在每一个执行等级中会执行哪些系统服务&#xff0c;其中包括各类常驻服务。谨记chkconf…

CCS3列表和超链接样式

在默认状态下&#xff0c;超链接文本显示为蓝色、下画线效果&#xff0c;当鼠标指针移过超链接时显示为手形&#xff0c;访问过的超链接文本显示为紫色&#xff1b;而列表项目默认会缩进显示&#xff0c;并在左侧显示项目符号。在网页设计中&#xff0c;一般可以根据需要重新定…

通用管理后台项目笔记 - Vue3+Vite安装环境、封装路由

概述 从0打造通用的后台管理系统&#xff0c;系列的第一篇博客&#xff0c;开发环境NodeYarnVite的开发环境&#xff0c;这是记录的学习笔记。 Node环境 本地使用的是Node v18.18.2&#xff0c;npm v9.8.1,安装脚手架工具&#xff0c;npm、cnpm、yarn3种方式&#xff0c;如果…

Linux玩物志:好玩却无用的软件探秘

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; &#x1f354;前言&#xff1a; 我们已经学习了yum指令&#xff0c;可以在Linux中安装一些软件的指令。下面我们就盘点一些可玩性很高但是却没有什么用的软件&#xff0c;在枯燥的学习中增添一丝乐趣&#xff01; For…

常见排序算法之堆排序

堆排序是一种利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构&#xff0c;并同时满足堆积的性质&#xff1a;即子结点的键值或索引总是小于&#xff08;或者大于&#xff09;它的父节点。 需要注意的是排升序要建大堆&#xff0c;排降序建小堆…

虚拟机克隆

linux系统的组成&#xff1b; 主根目录和根目录; 所有的根目录都包含在主根目录中&#xff1b; 根目录&#xff1a; /root /home/xxx,yyy,zzz;主根目录&#xff1b;/ 一个重要的子目录&#xff1a;etc passwd, 保存了所有的三类用户信息&#xff1b;bashrc, 可以设置别名 及…

kafka基本原理详解

Kafka是最初由Linkedin公司开发&#xff0c;是一个分布式、支持分区的&#xff08;partition&#xff09;、多副本&#xff08;replica&#xff09;&#xff0c;基于zookeeper协 调的分布式消息系统&#xff0c;它的最大的特性就是可以实时的处理大量数据以满足各种需求场景&am…

模块化时代的必备工具:Webpack详解,为你的项目注入新活力

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! ​ 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 一…

好书分享 | 千万富翁是怎么炼成的?

这是好书分享系列的第1篇&#xff0c;如果觉得对你有帮助&#xff0c;欢迎分享给你的朋友或家人。如果想继续收到本系列推文&#xff0c;请点击下方公众号关注我。 最近在微信读书的新书榜里&#xff0c;看到一本之前在国外网站看到别人推荐的书&#xff0c;《邻家的百万富翁》…

软件开发分享:从瀑布模式到水母模式——ChatGPT如何赋能软件研发全流程

文章目录 &#x1f4cb;前言&#x1f3af;ChatGPT如何赋能软件研发全流程&#x1f3af;ChatGPT和软件开发如何相辅相成&#x1f525;文末送书&#x1f9e9;专家推荐&#x1f9e9;内容介绍&#x1f9e9;作者介绍——陈斌 &#x1f525;参与方式 &#x1f4cb;前言 计算机技术的…

阿里云推出通义千问App,提供全方位的协助

&#x1f989; AI新闻 &#x1f680; 阿里云推出通义千问App&#xff0c;提供全方位的协助 摘要&#xff1a;阿里云旗下大模型通义千问App登陆各大安卓应用市场&#xff0c;具有超大规模预训练模型&#xff0c;可在创意文案、办公助理、学习助手、趣味生活等方面协助用户。功…

asp.net平面设计运营管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

asp.net平面设计运营管理系统 1.绪论 1.1编写的目的 3DA平面设计运营管理系统是为了提供本司经营模式拥有一个更便易管理职员工作的系统。目标是让职员工作更信息化&#xff0c;明确化&#xff1b;方便本司管理员能一站式解决工作中产生的数据进行统一汇总&#xff0c;提升管理…

镭神16线激光雷达跑SC-LeGo-LOAM算法

link 一、运行环境 环境&#xff1a;ubutu18.04ros:melodicpcl:1.8gtsammetis 环境配置&#xff1a; Eigen 3.3.4PCL 1.8.1 &#xff08;1.11不能用&#xff09;ceres 2.0.0gtsam 4.0.0 雷达参数&#xff1a; 二、下载编译运行 已修改配置的源码文件&#xff0c;下载catkin_ma…

【idea】生成banner.txt

Spring Boot banner在线生成工具&#xff0c;制作下载英文banner.txt&#xff0c;修改替换banner.txt文字实现自定义&#xff0c;个性化启动banner-bootschool.netSpring Boot banner工具实现在线生成banner&#xff0c;轻松修改替换实现自定义banner&#xff0c;让banner.txt文…

谈API接入必须了解的各大API调用电商API应用场景

哪些业务场景可以使用API接口&#xff1f; &#xff08;1&#xff09;爬虫业务&#xff1a;在爬虫业务中&#xff0c;使用API接口可以帮助解决IP限制、反爬虫策略等问题&#xff0c;提高爬取数据的效率和稳定性。 &#xff08;2&#xff09;网络安全&#xff1a;在网络安全领…

CB2-2CARD的openSUSE远程SSH登录提示优化

CB2-2CARD的openSUSE远程SSH登录提示优化 1. 源由2. 优化内容2.1 去掉Password/banner前后的prompts提示语句2.2 增加logo登录界面2.3 增加系统运行情况简单汇报2.4 增加banner 3. 优化效果 1. 源由 之前运行的CB2-2CARD的openSUSE安装&NAS环境配置服务器已经运行也有段时…

POI实现省市级联(二级下拉框)

POI实现省市级联&#xff08;二级下拉框&#xff09; POI级联下拉框 直接上代码测试结果参考文章 POI级联下拉框 业务上经常会用到POI做Excel的导出&#xff0c;有时导出需求比较复杂&#xff0c;这里记录一下自己参考网上大神的水月境的博文完成的一个导出Excel省市级连下拉…

语雀故障与反思,顺便再领半年会员!

23 日语雀的故障相信大部分人都已经知道了&#xff0c;官方发布的公告是这样的&#xff1a; 10 月 23 日语雀出现重大服务故障&#xff0c;且持续 7 个多小时才完全恢复&#xff0c;给用户使用造成极大不便&#xff0c;对此我们深感抱歉。经过复盘&#xff0c;我们在这里向大家…

电脑数据文件恢复工具easyrecovery14中文版

当不小心将回收站的文件删除了怎么办&#xff1f;想找回但是不知道怎么找回需要的数据文件&#xff1f;别担心今天小编就为大家介绍一款非常专业的电脑数据文件恢复工具&#xff0c;easyrecovery14是由Ontrack专为电脑用户推出的一款专业的数据恢复软件&#xff0c;这款软件功能…

一道简单的C#面试题

试题&#xff1a; 抽顺序问题&#xff1a;有10位面试者&#xff0c;需要随机抽号面试。 1&#xff09;总共十个号数&#xff0c;用数组表示&#xff1b; 2&#xff09;每一位面试者输入1开始抽签&#xff0c;然后得到抽签号&#xff0c;输入2结束抽签&#xff1b; 3&#x…