51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1959|回复: 1
打印 上一主题 下一主题

你了解API测试吗?如何充分的测试一个API?

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:05
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-9-30 11:25:05 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    什么是API?
      API代表应用程序接口。API是软件系统中的中间层,负责数据源与用户看到的图形用户界面(GUI)之间的数据通信。换句话说,API是软件的业务层,它在表示层和数据层之间创建连接。
      API测试侧重于所谓的应用程序业务层,这意味着与标准GUI测试相比,测试方法将完全不同。因此,在API测试中,我们可能需要使用一些其他测试模式,使用一些测试工具或我们自己的代码来检查这些测试中的API,而不是使用键盘敲击和鼠标单击作为标准输入。您需要验证来自这些API的响应(输出),以验证它们是否正常工作。要知道要查找的内容,您需要了解API生成的响应。
      API响应将是:
      · 状态消息/布尔值(例如,成功/错误或真/假等),它将显示API调用的状态。它还将充当标志(真/假),然后将更新表示层或数据库层。
      · 要传递到后续API或GUI或数据库的一组数据。
      在API中测试什么?
      · 功能:您可以根据提供的输入查找API响应。检查实际响应是否与预期响应匹配。
      · 性能:在这里,您需要了解API的响应时间。有时,从API获取响应需要很长时间。这可能是由于与API设计相关的性能问题。
      · 安全性:检查传递到API的任何敏感数据是否已加密,是此测试的一部分。例如,您可能想要检查负责在主页上生成仪表板报告的API。为了访问仪表板API,您可能需要一个令牌,该令牌可以作为先前运行的登录API的响应生成。此令牌应采用加密格式。您还可以检查是否有任何HTTPS加密。
      · 可靠性:您可以检查API是否在每次测试不同配置时为您提供快速响应(例如,不同的环境,各种用户登录等)您可以检查输出是否返回任何异常处理错误,超时错误等等。为了API的可靠性。可靠性测试的一部分,您还可以检查响应数据是否正确结构化。通常,API响应将以JSON或XML格式构建。
      · 否定测试:这里的目的是向API提供无效的输入数据并检查输出数据的行为方式。API应该正确处理错误。它应该为每个负输入条件提供有效,有意义的错误消息。如果空输入数据用于某些参数,您还可以测试API的行为。您还可以查找任何未使用的标志,不同输入数据的丢失/重复输出值。
      API测试用例是什么样的?
      以下组件应包含在API测试用例文档中。
      测试步骤
      API网址

      这是用于调用特定API的HTTP请求。例如,使用用于登录功能的API。如果其URL结构为Mobile / User / Login且您的域URL为http://domain.com,那么从浏览器/工具调用API的API URL将为http://domain.com/Mobile/User/Login
      HTTP方法
      对于RESTful API,它们使用HTTP方法根据对服务器的调用类型对API进行分类。例如,POST,GET等.POP方法将数据发送到服务器,而GET方法从服务器获取数据。
      有效载荷
      这定义了要提供给API的结构或输入数据的模型。例如,如果我们采用上述Login API,我们可以使用以下数据结构:
    1. {
    2.   username:string
    3.   password:string
    4.   device_id:string
    5.   object_id:string
    6.   device_token:string
    7.   mobile_os:string
    8.   app_language:string
    9.   }
    复制代码

    请求样本数据
      Request Sample包含实际输入数据,该数据作为有效负载传递给API。根据此示例数据,您可以根据需要拥有尽可能多的测试用例。对于上面的登录方案,示例数据可能如下所示:
    1. {
    2.   “device_id”:“F3649737-B25D-43BA-A212-71192”,
    3.   “object_id”:“”,
    4.   “device_token”:“f4icqBpC04k:APA91bFFYp8MKaetZKiAJ,
    5.   ”mobile_os“:”iOS“,
    6.   ”App_language“:”en“
    7.   }
    复制代码


    预期结果
      响应代码
      这表示API请求的响应代码。200 OK应该是成功API请求的响应代码。还有其他响应代码,例如400 Bad request,401 Unauthorized,403 Forbidden,404 Not found,500 Internal Server Error等。如果您可以从API测试的输出控制台记下API的响应代码将会很有用。工具。
      响应结果消息
      对于每个输入,可能存在不同的API输出成功消息。您需要确定相应的响应消息并在测试用例中记录它们。Login API的一些常见消息将是:SUCCESS,INACTIVE_ACCOUNT,INVALID_PASSWORD,USER_NOT_FOUND,INVALID_DEVICE_ID,ERROR
      响应结果示例
      这是每个输入数据组合的输出数据。您需要此数据才能根据API结果的实际输出进行验证。下面给出了成功登录操作的示例:

    1.  {
    2.   “result”:“SUCCESS”,
    3.   “data”:{
    4.   “id”:7093,
    5.   “company_id”:0,
    6.   “customer_id”:“181055033”,
    7.   “user_type”:0,
    8.   “username”:“user@company.com “,
    9.   ”first_name“:”Test“,
    10.   ”last_name“:”User“,
    11.   ”app_language“:”en“,
    12.   ”mobile_os“:”iOS“,
    13.   ”email“:”user@company.com“,
    14.   ”phone“: “917837322”,
    15.   “secondary_phone”:“0”,
    16.   “address”:“”,
    17.   “created_at”:“2018-10-01”,
    18.   “updated_at”:“2018-10-01”,
    19.   “last_login”:“2018- 10-01“,
    20.   }}
    复制代码

    API测试技巧
      · 了解应用程序中每个API的用途。如果不了解特定API的使用,就很难为其记录足够的测试用例。
      · 在为不同的输入条件编写测试用例时,请使用边界值分析和等价类分区等测试技术。
      · 正确记录每个测试用例的输入参数和API响应,以便可以以结构化方式执行测试。以一种跟随另一种方式的方式订购测试用例也很重要。例如,要测试CRUD操作,您需要按创建,更新和删除顺序编写测试用例。

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-22 15:46 , Processed in 0.079080 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表