当我们朝着更多敏捷的左移[译者注:左移测试]软件开发过程发展,比如持续集成和持续交付,需要不断增加对开发人员的快速反馈。
UI 测试的不足之处在于它们很慢,它很难让开发人员快速了解到他们的代码是否在最后一次构建中存在问题。而另一种方法,API 测试,往往比 GUI 测试更快更可靠。
在仔细研究 API 测试工具之前,让我们确保我们拥有一致的、实际的 API。
应用程序编程接口(Application Programming Interfaces, API) 是一种软件组件接口的规范。
大多数功能测试都涉及用户界面,比如 Web 页面或 .NET 窗体。API 测试则会避开用户界面,通过调用 API 来和应用程序直接通信。
API 测试可以用于测试一些无头测试,比如 JMS HTTP、数据库和 Web 服务。
API 测试有时候也称为“无头”测试。多数无头测试会绕过 UI 并直接向应用后端或服务发送请求,然后接收响应,并验证响应内容以确保所有事件都和我们期望的一样在运作。
这个简单的例子通常被称为客户端/服务器关系。客户端产生一个需要资源的请求,然后去找到一个满足该请求的服务器。服务器定位所需资源并向客户端发送反馈。
Selenium 只能用于基于浏览器的测试,而你可能需要一个工具来测试基于 Web 服务的 Rest 和 Soap。
这里有一些不错的工具可以用来测试基于 Web 服务的 Rest 和 Soap。
Postman 是一个 Rest 客户端,它一开始是 Chrome 浏览器的插件,不过最近推出了用于 Mac 和 Windows 的本地版本。
你可以在一个较高的级别上使用它,向 Web 服务器发送 POST 请求后,会收到它的响应。它允许你按照 API 的需要设置所有头信息和 Cookie,并在得到响应之后对其进行检查。
可用于自动化测试或探索性测试
可以在 Mac、Windows、Linux 和 Chrome 中运行
拥有不少集成工具,比如 Swagger 和 RAML 格式
可以运行、测试,并拥有文档和监控功能
不需要学习新的语言
Karate 允许你创建一系列的测试,调用 Web 服务并判断响应是否与预期一致。
构建在 Cucumber-JVM 之上
可以像标准 Java 项目一样运行测试并生成报告
不需要 Java 知识就可以编写测试
即使不是程序员也很容易编写测试
看一个简单的例子,以此着手使用 Karate 和 BDD。
SoapUI 是来自 SmartBear 软件的无头测试工具。它有两个版本:免费开源版和专业版。免费版是开源的,所以你可以获得它的完全源码并根据需要来进行修改。Pro 版本的用户体验不错,拥有一些附加功能,包括表单编辑器,XPath 断言向导和 SQL 查询生成器。免费版本可以让你:
使用 Groovy 很容易创建自己的代码
通过拖放创建测试
构建复杂的场景
异步测试
SoapUI 的 Mock Service(模拟服务) 可以让你在 Web 服务尚未实现之前先进行模拟
HttpMaster 自我定位为一种可自动测试网站和服务的 Web 开发和测试工具。 它可用于测试RESTful Web Service 和 API 应用程序。 HttpMaster 还允许您监视 API 响应。
HttpsMaster 项目提供全局选项来自定义您的 API 请求
参数功能使您能够在请求中包含动态数据
您可以使用“请求链“功能,使以前的请求返回的一些数据包含在下一个请求参数中
Rest-Assured 是一个开源的 Java 特定领域专用语言(DSL)。它让 REST 服务测试更加简单。它消除了很多套路化的模板代码,从而使测试和验证复杂响应更加简单。 它还支持 XML 和 JSON 请求/响应。
删除与 REST 服务交互所需的模板代码
支持 BDD Given / When / Then 语法
与 Java 项目无缝集成
RestSharp 是用于 .NET 的一个简单的 REST 和 HTTP API 客户端
支持 .NET 3.5+、Silverlight 5、Windows Phone 8、Mono、MonoTouch、Mono for Android
对多数 .NET 项目来说,很容易通过 NuGet 安装
支持 GET、POST、PUT、PATCH、HEAD、OPTIONS、DELETE
2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务