使用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 文件并排放置 。

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

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

  • 25
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值