在测试API之前,需要了解API。API(应用编程接口)是可由其他软件应用执行的软件功能和过程的集合。
什么是API测试?
API测试是一种验证应用程序编程接口(API)的软件测试方法。API测试的目标是使用软件将输入发送到API,并记录输出以测试API。 所以API测试是:
- 在没有GUI的情况下进行测试
- 以编程方式模拟数据或控件。
- 关注功能,而不是行为或客户体验。

为什么API测试很重要?
API测试有四个显著的优势
1. API检测是大势所趋
Api测试在过去10年中发展非常迅速。与其他测试相比,它变得非常流行。
2. 时间效率高
API测试,可以使用并行执行来减少测试执行时间。与其他测试类型相比,最多可以节省5倍。
3. 独立于语言的
在API测试中,数据通过XML或JSON交换,因此可以使用任何语言来测试响应。例如,如果有响应为JSON格式的服务,则可以使用Java、C#或任何语言轻松解析数据。
4. 轻松的GUI集成
使用UFT(统一功能测试)进行API测试
有很多工具可用,既有开源的,也有商业的。QPT UFT是执行API测试的最佳工具,界面和配置都很简单。
QTP的最后一个版本称为HP Unified Functional Testing(UFT),它是HP QTP(GUI测试工具)和HP Service Test(API测试工具)的组合。此外,QTP支持Web、Java、.Net、Oracle、Siebel、Web服务和许多其他主要语言和平台,而一些旧版本不支持这些语言和平台。
HP UFT支持的API测试类型
-
Web服务
-
Rest接口
-
面向对象语言
-
数据库
-
专有API
使用QTP开始第一个API测试
在这篇UFT中的API测试教程中,将介绍UFT API测试示例。下面我们将API作为测试用例进行测试
-
获取指定用户在Facebook上的个人资料。
-
验证配置文件是否符合预期
下面是为该API构建测试流的步骤。

步骤1: 打开HP UFT并创建新的API测试项目
- 选择开始>(所有)程序>HP软件>HP Unified Functional Testing>Unified Functional Testing。

- 单击文件>新建>测试。选择API测试类型

- 打开对话框后,输入API test的名称:api_facebook。并选择保存此项目的位置,如上面的UFT API测试示例所示。
单击Create创建一个API Test项目。

步骤2: 将HTTP求添加到测试流。
我们将使用HTTP求向Facebook API发出求。
- 选择工具箱>网络

- 将元素HTTP求拖到测试流。

步骤3: 配置参数并将其传递到HTTP求
- 右键,单击Object HTTP Request以编辑此对象。

- 在属性部分中,输入URL

https://graph.facebook.com/v2.3/me?access_token=CAACEdEose0cBANJsDnbZC92mNAghaM6xxZCZBZAvKlMXS98VYvKy%20OlrfAdsUWR8x5aw9Kqc0grscs9zb9IYED4VC3FwapIZBj%20dsuxy%20HdLcff38gYUBFNeRQlH%20fN7eXKoVZBNl0bR233ZAZCw8fLF1QLh98ry2ZBeYBhXLabtTDkFPZA1IqhaMG0mQp30zO1%20QxQ19nVCxZArJA6XRoB1o5FMepII5cn3DgbBmTgZD
还可以通过SetValues求头部将参数传入到API

可以使用Facebook的Graph API Explore获取Access_Token的值。

-
设置HTTP方法为GET方法。
- 配置HTTP方法

- 配置HTTP求的检查点
在检查点部件中,设置的状态代码为“200”。检查点允许在状态代码为200的情况下查看操作是否成功,这意味着测试用例已通过。

步骤4: 运行测试
单击“运行”按钮或按F5打开“运行测试”对话框。单击Run(运行)以编译并运行测试。

步骤5: 查看结果
运行结果查看器将打开。在这个使用UFT进行API测试的示例中,如果测试用例失败,测试结果如下图所示。

如果测试用例通过,我们报告如下

好的,现在我们已经使用UFT完成了第一个API测试。现在已经学会了使用UTF中的API测试创建一个测试,可以为无GUI应用程序创建自己的测试了。
总结
API测试是GUI下面的测试,以编程方式模拟以下场景的数据或控件。 API测试是软件开发过程中最流行的测试之一,因为它有很多优点
- API是测试的一种趋势
- 高效
- 独立于语言
- 轻松的GUI集成
执行API测试的工具很多,QTP是执行此测试的最佳工具之一。尽管QTP有一些缺点,但QTP仍然是一个非常强大的API测试工具,因为它有很多优点