使用SoapUI测试REST API项目

SoapUI是一款强大的API测试工具,它支持SOAP和REST服务的测试。在本文中,将探讨如何使用SoapUI来测试一个基于REST的Web API项目。这个过程包括创建数据库、部署Web API项目、创建SoapUI项目、执行SQL脚本以及创建REST请求等步骤。

在开发一个AngularJSWeb API项目时,需要独立测试Web API方法,以便在没有客户端调用的情况下追踪缺陷。这样做可以帮助确定问题是出在WEB API本身还是客户端的请求上。因此,决定首先独立测试REST服务方法。知道SoapUI是一个不错的选择,尽管之前没有在REST API项目中使用过它,所以本文将详细介绍如何使用SoapUI进行测试

使用附带的代码

首先,下载一组SQL脚本并在SQL Server中执行,以创建"Scratch"数据库对象。其次,提供了一个简单的Microsoft WEB API项目(Visual Studio 2013版本),可以下载、编译(更改连接字符串)并部署到IIS上。然后下载SoapUI项目(免费版本5.2.0)。下面将详细说明如何创建和测试SoapUI项目请求。

编译并部署WEB API项目到IIS

在Visual Studio 2013中打开解决方案,编译并通过Nuget添加缺失的包。一旦将缺失的包包含到项目中,就可以将API项目发布到IIS上了。部署到一个名为"WebApi-SoapUI"的站点。一切顺利的话,IIS应该看起来像这样:

现在,可以看到想要测试的控制器。

执行SQL脚本

解压缩SQL包,双击"Scratch Database.sql"文件在SQL Server中打开。执行这个脚本来创建一个带有两张表和一个存储过程的Scratch数据库。从两个.txt文件中导入数据到相应的表中。现在,有了可以进行黑盒测试的数据。

创建Soap UI REST项目

打开SoapUI并点击新的REST项目工具栏按钮。这将为呈现一个对话框,让输入想要测试的特定控制器的REST URL:

http://localhost/SoapUIWebAPI/api/People

得到了一个带有默认请求的SoapUI REST项目——给请求一个更有意义的名字,比如"All People"。

因为在网站中启用了安全功能(Windows身份验证),所以也需要在REST请求中复制它(模仿客户端请求)。通过点击页面底部的"Authorize (NTLM)"按钮来实现这一点。

输入网站的有效凭据(注意:确保应用程序池帐户也具有访问控制器API的正确凭据)。

创建Soap UI REST请求

现在准备好向控制器发送REST请求了。注意请求URL是如何被分割成服务器和控制器的,并且方法下拉菜单默认为"Get"(在这种情况下是正确的)。点击绿色箭头发起请求,应该看到一个JSON响应。

JSON数据响应

要请求特定记录,只需像在浏览器地址栏中那样构建请求。

例如,要检索ID为5的记录,只需创建如下请求——确保为每个请求设置授权:

创建Soap UI REST POST

要像客户端提交表单一样进行POST操作,请确保勾选"Post QueryString"复选框。添加参数,并确保操作方法是"Post",然后提交请求。

SQL Server中验证POST操作,也可以使用Get方法来检索新添加的记录(注意:ID不是标识字段,可能需要从SQL Server中获取下一个有效的ID值)。

如果向项目中添加了更多的操作方法,SoapUI项目应该看起来像这样(始终记得为每个请求设置授权设置):

创建Soap UI REST PUT

创建Soap UI REST PUT请求的步骤与创建GET和POST请求类似。需要确保请求URL正确,并且设置了正确的HTTP方法。PUT请求通常用于更新资源。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485