沙沙资源网 IT教程 使用Karate轻松实现自动API测试

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

karate

如果您想做自动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设置环境的快速指南。

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测试工具 – 文件夹结构

像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>             面试经验交流。感兴趣可以175317069,群内会有不定期的发放免费的
            <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时如何做任何你需要的东西!

使用QUIC

QUIC是Google新开发的一个基于UDP的协议,它提供了像TCP一样的传输可靠性保证,可以实现数据传输的0-RTT延迟,灵活的设计使我们可以对

苹果味的BeatsX无线耳机开箱图赏和使用初体验

在去年苹果发布iPhone 7时,为了推行无线化音乐体验,苹果公布了AirPods、Beats Solo 3、Powerbeats 3 Wireless和这次体验的BeatsX无

设计方法:如何在设计中使用双钻设计模型?

原研哉在《设计中的设计》中说:“设计的实质在于发现一个很多人都遇到的问题然后试着去解决的过程。”如果说解决问题是设计的核心

【Python】(异常机制)raise … 和 raise … from …

Overviewraise … 和 raise … from … 的区别使用总结Reference raise … 和 raise … from … 的区别 Python 中 raise 和

蓝牙键盘怎么使用?

蓝牙键盘需要连接平板或者电脑使用,该怎么连接呢?连接的时候发现会提示在键盘上输入数字即可成功连接。当我想在笔记本电脑上连接时

文章回顾

大家看了本文使用Karate轻松实现自动API测试的精彩教程资源内容,是不是对使用Karate轻松实现自动API测试了解更多,真心希望使用Karate轻松实现自动API测试能帮助到你, 小编会一直给你带来更多教程资源文章信息。

声明:本站内容和图片来源于网络和读者投稿,本站无法甄别投稿用户享有著作权,根据《信息网络传播权保护条例》,如果转载的作品侵犯了您的权利,请在一个月内通知我站及时删除(serviceaffair#outlook.com #改成@)。https://www.shawanolakecottagemartzke.com/135458.html
返回顶部