使用Karate轻松实现自动API测试

使用Karate轻松实现自动API测试如果您想做自动 API 测试 但没有编程背景 那么你必须要给 Karate 一个机会 Karate 由 Intuit 作为开源工具发布 该工具旨在用于自动 API 测试 并具有使 API 测试变得轻而易举且实际上令人愉快的所有必需功能 与需要大量编码的其他自动化 API 测试工具不同 即使只是做基本的东西 Karate 开箱即用 您可以在不了解任何编程语言的情况下构建最复杂的请求 响应操作 您所要做的就是使用

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

使用Karate轻松实现自动API测试

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设置环境的快速指南。

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> 如果对软件测试、接口测试、自动化测试、性能测试、LR脚本开发、 <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(https://some-api.com/api/users),它返回JSON格式的用户列表

[ { "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时如何做任何你需要的东西!

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vs2019键盘钩子_低级键盘钩子回调函数「建议收藏」

    vs2019键盘钩子_低级键盘钩子回调函数「建议收藏」与SetWindowsHookEx函数一起使用的应用程序定义的或库定义的回调函数。每当一个新的键盘输入事件即将被提交到线程输入队列中时,系统都会调用这个函数。当调用此回调函数以响应键状态的更改时,将在更新键的异步状态之前调用回调函数。因此,不能通过在回调函数中调用GetAsyncKeyState来确定键的异步状态。HOOKPROC类型定义了指向这个回调函数的指针。LowLevelKeyboard…

    2022年6月1日
    52
  • 缓存穿透、缓存并发、缓存雪崩、缓存抖动、热点缓存、缓存双写一致性等问题…

    缓存穿透、缓存并发、缓存雪崩、缓存抖动、热点缓存、缓存双写一致性等问题…

    2022年2月19日
    46
  • ssl协议及开源实现openssl

    ssl协议及开源实现opensslssl协议SSL:(SecureSocketLayer)安全套接层,ssl是一套安全协议,被应用层调用,当http调用ssl协议时被称为https,当ftp调用ssl协议时被称为sftp。lls是一个协议的集合,其中包括:Handshake协议:包括协商安全参数和密码套件、服务器身份认证(客户端身份认证可选)、密钥交换ChangeCipherSpec协议:一条消息表明握手协议已

    2022年5月11日
    65
  • 520-希望可以做一个会说情话的程序员[通俗易懂]

    做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开今天520,不分享技术了。分享一些动人的情话,作为程序员在工作编码的同时,也不要忘了追求人生的另一半!分享下面内容,内容整理来源网络!王小波除了作家的身份外,还是一名程序员,并且是一名很牛的程序员。值得学习!没有女朋友的可以用下面的代码我一生都在等待 直到你闯进我的世界 我只想对你说:余生请多指教…

    2022年2月28日
    37
  • 自动化测试框架: Delphi中”包”的妙用

    自动化测试框架: Delphi中”包”的妙用

    2021年7月24日
    52
  • ExecuteReader报错,语法错误

    ExecuteReader报错,语法错误先上图:随后我就死命的看自己的sql语句,可是看来看去,也看不出问题,明明是很对的。。。最后,到处查找解决方案,终于在论坛见到了大神的一句:“你输入的是中文字符的空格!”然后我赶紧回来一看,果然是。。。。。。瞬间蛋碎了一地。。。。sql语句莫名报语法错误的时候,赶紧仔细检查下时候是空格问题,这个问题很难发现!!!!!

    2022年6月20日
    23

发表回复

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

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