本文主要是介绍使用Karate轻松实现自动API测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如果您想做自动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 APIScenario: Fetch all usersGiven url 'https://some-api.com/api/users'When method GETThen status 200And assert response.length == 2And match response[0].name == 'FirstUser'
就是这样 - 非常简洁,重要的是,没有代码!
Karate具有非常丰富的实用功能,使您能够非常轻松快速地执行自动API测试。在后面,我们将深入研究这个神奇的工具,并举例说明在测试API时如何做任何你需要的东西!
这篇关于使用Karate轻松实现自动API测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!