使用Katalon Studio创建你的第一个API测试

API测试(或WebService测试)在软件测试中变得越来越重要。根据谷歌趋势报告,过去五年来,行业内对API测试的兴趣一直在增加。这种趋势在一定程度上表明API测试的需求变得更加普遍。测试API或WebService不再仅仅由原来的开发人员执行,在独立的测试团队中,也是非常常见的一部分工作了。

本教程将演示如何快捷的使用Katalon Studio从头开始创建一个API / WebService测试(以下简称为API测试)。

在开始进行API测试之前,我们需要先了解一些关于Katalon Studio中关于API测试对象的基本术语。


Test Case:

这是Katalon Studio项目结构中最重要的概念之一,测试用例集合中列出了用户存储的所有测试用例。

Object Repository:

测试对象库是用来存储所有测试对象的。

    在UI测试中,测试对象是具有指定定位器的Web元素,Web Driver在测试执行期间使用这些定位器来定位Web元素。

    在API 测试中,测试对象指的是具有URL(域名或IP地址)和一些必要信息(如methods, authorization, body, parameters等)的请求函数,测试执行期间rest-client会使用这些信息去发送请求。

Request:

在API 测试时,Request指的是客户端向服务端的一次请求。

在一个Request中,URL和method是必需的信息,而authorization, body和 parameters是可选的,并且取决于请求类型。

在Katalon Studio中,请求存储在Object Repository中,可以从任何测试用例的步骤中调用。

Response:

一个响应,就是服务端对客户端请求返回的数据。典型的响应包含Headers,Body以及Code(响应代码)等信息。

在Katalon Studio中,响应存储在Object Repository(请求级别)或任何测试用例的步骤中。目前,可以在每个单独的测试用例中验证响应。


使用Katalon Studio从头开始创建API测试用例

第1步:创建一个Request

右键单击Object Repository,在New子菜单下选择Web Service Request,打开Web Service Request对话框。

图1: 新建Web Service Request菜单

将信息输入到新的“ Web Service Request”对话框中

图2:新建Web Service Request对话框

Name: 请求名称,用于指定请求的名称。没有特殊的命名规则。但是强烈建议定义的名称是可读的,最好能够表达出请求的目的。

Request Type: 请求类型,在Katalon Studio中,Web服务请求可以是RESTful或SOAP。由于RESTful变得越来越流行,因此在对话框中默认选择它。

URL: 请求的具体地址

Description: 如果需要,可以填写有关请求的更多备注信息。

填写完成所有信息后,将在单击“OK”按钮,就创建了一个Request。

图3: 在测试资源管理器中创建了新的Web Service Request


第2步:设置Request

图4: Request信息

(1)第一步中创建的Request。

(2)请求的方法,如果请求类型是RESTful,则可以选择以下方法之一:GET,PUT,POST,DELETE。

(3)请求的URL,可以在创建请求后随时更新。

(4)授权设置,用于配置连接服务端的授权。Basic和OAuth 1.0是两种最常见的授权方法。

    Basic: 需要设置有效的用户名和密码

    OAuth 1.0: 需要设置表单中要求的所有配置

    注意:授权设置完成后,需单击“Update to HTTP Header”,使配置生效。

(5) HTTP Header配置。

(6)组织用例集的文件夹结构。

    被测应用程序通常有数百种服务,因此拥有良好的组织非常重要。在Katalon Studio中,强烈建议使用文件夹结构按路径、功能和方法对Web服务进行分组。


第3步:Smoke(冒烟测试)

点击发送按钮,即可发送请求并快速验证响应。

图5: 冒烟测试的Request和Response

(1)发送按钮,单击发送请求。

(2)Status: 请求的响应代码。代码反映了请求的状态,详细了解响应代码

(3)Elapsed: 从请求到获取响应所需的时间。

(4)Size: 响应数据的大小。

(5)Body / Header: 响应数据的Body和Header信息。

(6)显示格式,Katalon Studio将自动选择漂亮模式以正确格式显示数据。目前,它支持JSON,XML,HTML,JavaScript数据类型。


步骤4:创建测试用例

前3个步骤演示了如何在Object Repository创建Request并进行冒烟测试,此步骤将带你创建一个测试用例。

图6:  添加“Web Service Keyword”步骤

(1)创建一个具有可读名称的测试用例。强烈建议测试用例名称简要描述测试场景(测试目的)。

(2)从测试用例编辑器中,选择“Add - > Web Service Keyword”,添加新步骤。

图7: 添加“Send Request”关键字

(1)在项目下拉列表中,选择“Send Request”关键字

(2)单击同一行中的Object cell打开“Test Object Input”对话框

(3)从“Object Type”列表中选择“Test Object”

(4)选择我们前面创建的Request


第5步:添加验证步骤

此步骤将指导你如何将验证添加到测试用例中。

图8: 添加验证

(1) 上一步中已经添加的Request。

(2)为了验证请求返回的内容,我们需要指定请求的输出。只需在Output中输入稍后使用的变量名称即可,例如response。

(3)测试用例的步骤2和步骤3用于验证。与“Send Request”类似的方式添加。步骤2验证响应代码(如果请求成功发送,则为200)。

(4)验证响应代码是否为200。

(5)使用jsonpath和期望值验证响应内容。


第6步:执行测试用例

执行API测试用例与执行UI功能测试用例完全相同。但是,在API测试中,不会使用到浏览器。


恭喜!通过以上6个简单的步骤,现在已经成功地从零开始创建了一个简单的API测试。

即刻开始你的Katalon之旅吧。


Notes:

Source code:https://github.com/katalon-studio-samples/jira-api-tests

Project: Jira API

详情查阅官方原文,搬运过程中若词句有不当之处,还望见谅。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,599评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,501评论 25 707
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,313评论 1 92
  • 展会第一天,也正如自己预测一样,确实工厂很冷清,毕竟工厂一直都在赶货,没有时间去准备,展厅里面的沙发都是老款,我自...
    郑胜杰阅读 169评论 0 0
  • 你是否和我一样,学习了smart制定计划的方法,依然很多时候既定的计划实施不下去? 最近学习一个新的...
    Lydia亲亲阅读 684评论 0 2