使用 SoapUI 测试你的 Rest API 控制器方法





5.00/5 (4投票s)
使用 SoapUI 验证你的 Restful 服务方法(
引言
下载 VS2013 Web API 项目(不包括 packages)
多年来,我一直使用 SoapUI 来测试我的 SOAP 服务,创建 SoapUI 项目并将它们集成到 TFS 构建中,或者只是打开一个 SoapUI 项目来快速测试来自服务调用的响应(结构或数据)- 快速而简单...
背景
在一个 AngularJS Web API 项目中,我需要单独测试 Web API 方法,而无需客户端的调用,以找出缺陷。 确定问题是在 WEB API 中还是在客户端的请求中。 因此,首先单独测试 Rest 服务方法是一个简单的问题。 为此,我知道我会使用 SoapUI,但我以前从未在 Rest API 项目中使用过它 - 因此有了本教程!
使用附加的代码
首先,下载一组 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 项目
打开 Soap UI 并单击新的 Rest 项目工具栏按钮。
这将呈现一个对话框,供您输入要测试的特定控制器的 Rest URL
https:///SoapUIWebAPI/api/People
我们看到一个带有默认请求的 SoapUI Rest 项目 - 为您的请求赋予更有意义的名称,例如“All People”。
因为我们在网站中启用了安全性(Windows 身份验证) - 我们还必须在 Rest 请求中复制它(模拟客户端请求)。 我们通过单击 Authorize (NTLM) 按钮(页面底部)来做到这一点。
输入网站的有效凭据(注意:确保您的应用程序池帐户也具有访问控制器 API 的正确凭据)。
创建 Soap UI Rest 请求
现在我们准备好向我们的控制器发出 Rest 请求。 请注意,请求 URL 如何拆分为服务器和控制器,并且方法下拉列表默认为“Get”(在这种情况下是正确的)。 单击绿色箭头启动请求,您应该会看到 JSON 响应。
Json 数据响应
要请求特定记录,我们只需像在浏览器地址栏中一样构建请求。
像这样为 People API 添加一个新请求
例如,要检索 ID 为 5 的记录,我们只需创建这样的请求 - 确保设置授权(对于每个请求)
创建 Soap UI Rest Post
要像表单提交一样发布(就像客户端一样),请确保选中“Post QueryString”复选框。 添加您的参数并确保 action 方法是“Post”,然后再提交请求。
在 SQL Server 中验证您的 post,您也可以使用您的 Get 方法来检索新输入的记录(注意:ID 不是标识字段,您可能想从 SQL Server 获取下一个有效的 ID 值)。
如果您向项目中添加更多操作方法,您应该会得到类似于这样的 SoapUI 项目(始终记住为每个请求设置授权设置)