• 0
  • 0
分享
  • 如果你没有弄清这些知识点,恐怕你做不好接口测试——软件测试圈
  • 曼倩诙谐 2023-02-23 11:10:35 字数 3026 阅读 640 收藏 0

  前言

  Api测试又可以理解为接口测试,是目前企业中使用最广泛的一项测试技术。很多小伙伴在没有了解一些基础知识时,就盲目的去学习接口测试,学的一脸蒙。今天我就从0到1给大家分享下如何去做接口测试。

  什么是API测试?

  应用程序编程接口(API)是充当软件组件接口的规范。大多数功能测试都涉及测试网页或表单等用户界面,而API测试涉及绕过用户界面并通过调用其API直接与服务程序通信。

1-1.png

  API测试允许测试绕过GUI并将请求直接发送到应用程序的后端或服务,并在验证响应内容以确保按预期运行的同时收到响应。

  为什么API测试很重要?

  随着敏捷开发成为大多数互联网公司的标准,我们开发软件和自动化测试的方式已经发生了巨大变化。在敏捷开发之前,大部分自动化时间都是通过图形用户界面(GUI)完成的。这是Selenium和UFT/QTP等工具处理的部分。

  但是,如果您已经进行了一段时间的自动化操作,您就会知道这些类型的测试是多么耗时,脆弱且难以维护。企业投入大量资金来创建自定义功能GUI测试自动化框架,单很可能最终使他们对其可靠性失去了信心,直到人们停止投入。

  同样,针对用户界面的GUI测试往往需要花费很长时间才能运行。对于某些敏捷实践(例如连续构建),迁入新代码时,从GUI回归测试套件接收反馈所花费的时间是不能被接受的。

  API快速反馈

  在这些情况下,需要更快的反馈。发现错误的时间越早越好,因为开发人员会立即知道他们所做的代码更改已破坏了构建,因此需要进行检查。在测试驱动的流程中,用户需要大量测试集才能快速且频繁地运行,并且必须能够将它们集成到开发生命周期中。

  GUI测试仍然非常重要。它是唯一能够真正测试用户在生产过程中如何体验应用程序的测试类型。某些缺陷只能通过GUI测试来捕获。换句话说,尽管至关重要,但GUI不应是用户关注的唯一自动化类型,也不应该是自动化测试总量中最大的一部分。

  敏捷关注的自动化类型是更可靠的API下层测试,而较少涉及GUI自动化。

  API测试金字塔

1-2.png

  GUI测试

  GUI测试专注于测试应用程序用户界面,以确保其功能正确。GUI测试位于金字塔的顶部,仅占应该创建的自动化测试类型总数的一小部分。

  单元测试

  单元测试构成了金字塔的最大部分,形成了坚实的基础。创建单元测试以验证源代码的单个单元,例如方法。通过这样做,开发人员可以隔离其代码中最小的可测试部分。单元测试是最容易创建的,并能带来最大的收益。由于单元测试通常是用与编写应用程序相同的语言编写的,因此开发人员可以轻松将它们添加到开发过程中。

  API测试

  中间服务层是创建诸如Rest-Assured和Postman之类的工具的“最佳位置” 。

  服务测试的重点是验证许多小组件的交互是否可以集成在一起而不会出现问题。由于API测试绕过了用户界面,因此它们往往比GUI测试更快,更可靠。

  最重要的是:由于API测试不依赖UI即可完成,因此可以在开发周期的早期创建它们。

  API负载测试

  API测试的另一个好处是,您可以利用相同的功能性API自动测试来在性能测试工作中使用。很多公司使用JMeter进行负载测试,而这些测试用例都是基于API功能测试。

  基本思想是,您正在使用工具进行性能测试,但是在针对您的API运行例如负载测试之前,需要确保它实际上可以正常工作。因此,您想先进行功能测试,然后可以利用功能测试脚本完成性能测试。

  因此,API测试脚本是性能测试工作流程中的一大优势。

  API测试工具如何选择

  您可以使用许多工具来帮助您进行API测试自动化。

  如何测试Web服务

  测试任何其他应用程序一样!通常,对于Web服务,正常功能测试的最佳方法是相同的(除了与大多数其他应用程序不同的是,Web服务没有GUI用户界面这一区别除外)。

  因此,一直使用的功能测试技术仍然适用。只需将Web服务视为没有业务流程,然后相应地编写测试用例。

  自动化Web服务时要问的一些好问题:

  ·服务是否以正确的值响应?

  · 该行为是否符合最终用户的预期要求?

  · 该服务多快将响应发送给用户?

  · 服务可以处理预期和意外的用户负载吗?

  · 服务可以处理无效数据和错误数据导致的异常吗?

  · Web服务测试术语

  · 对于大多数测试人员而言,最大的障碍是适应谈论Web服务时使用的术语。

  例如:

  · XML格式

  XML是一种创建标记语言的方法,您可以使用它定义自己的标签。XML允许用户与众多系统共享结构化数据,包括通过Internet。

  · REST

  REST(表示性传输状态)是用于开发使用HTTP协议的Web服务的轻量级选项。

  HTTP

  HTTP是一种通过网络传输消息的通信协议。HTTP也被称为无状态协议,因为它发出的每个请求都独立于所有先前的请求。

  Cookies用于跟踪会话的先前请求的状态。Cookies是存储在客户端上的文件,具有从HTTP标头信息中添加的信息。当向用户已经访问过的网站发出请求时,存储在Cookies中的信息将发送回浏览器。以这种方式,网站能够记住用户的先前活动和当前的状态。

  理解HTTP将为我们了解大多数API测试工具功能奠定良好的基础。

  关于HTTP请求

  HTTP客户端请求包含三个主要部分。他们是:

  请求行(HTTP方法)

  告诉服务器正在发出什么类型的请求。在上面的示例中,我们发出了GET请求,但您可以使用更多请求,具体取决于您需要发出的请求类型。HTTP方法具有以下选项(前四个方法是最常见的):

  · GET –从指定来源检索数据

  · POST –将新数据发送到指定的源

  · PUT –更新指定来源的信息

  · DELETE –从指定的源中删除数据

  · TRACE –要求代理人声明自己

  · 选项 –询问有关服务器上可用选项的信息

  · HEAD –与GET请求类似,但仅发送有关文档的信息

  · CONNECT –客户端必须使用HTTPS服务器时使用

  标头

  包含要发送到服务器的其他信息,例如浏览器,操作系统,接受和Cookie信息。标头的不同类型是:

  · 常规 -可选的标头,其中包含诸如当前时间之类的信息

  · 请求 -向服务器提供有关客户端的更多信息

  · 实体 -包含有关发送文档的特定信息,例如长度和编码方案

  请求体

  包含用于需要它的方法的数据,Get方法为空。

  从服务器返回的响应也包含三个部分,就像我们在HTTP请求中看到的那样:

  响应行(状态码)

  · 标头信息

  · 包含响应中所有文本的正文

  · HTTP状态码

  在我们的示例中,状态代码为200,表示一切正常。状态代码将根据原始请求发生的情况而有所不同。

  可以从服务器返回的状态码是:

  1xx – 100-199范围内的响应表示服务器正在处理请求。

  2xx – 200-299范围内的响应表示请求成功。

  3xx –响应范围在300-399之间表示未执行请求-需要采取进一步的措施。

  4xx –响应范围为400-499,表示请求不完整,可能需要更多信息。

  5xx – 500-599范围内的响应表示服务器遇到错误。


作者:码上开始    

来源:http://www.51testing.com/html/38/n-6146038.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、等待的作用等待的作用在实际自动化实现过程中,都会添加等待来完善自动化测试的代码。自动化测试,是交由机器来执行的一种测试手段,用于提升测试效率,意味着每一次的自动化测试都 需要有非常高的成功率,才可以达到提升效率的作用。在自动化测试中,其实就是通过代码,来执行测试的流程,也就意味着机器知己对页面元素来进行操 作,如果说因为页面加载速度过慢,导致元素无法被第一时间找到,则报错,停止本次自动化测试, 通过添加等待的方法,让代码在运行时,会进行等待页面加载的操作,以便于更好的进行元素查找。我们平常用到的有三种等待方式:强制等待隐式等待显示等待二、三种等待方式1:强制等待第一种也是使用最简单的一种办...
            0 0 1347
            分享
          •   在利用Jmeter工具进行性能或自动化测试工作之初,第一步面临的交易想必就是登录。你可以运用控制器录制登录交易的脚本,或是通过自行配置环境、上送正确的用户名和密码完成登录操作,但这就算完成登录交易了么?事实是在继续配置后续交易之后,当你重复执行脚本时会发现,只有登录本身成功了,后续交易却报错。  产生这样的原因往往是当利用Jmeter首次录制登录交易后,此时有一个叫做token的值便作为固定参数存储在脚本中,而后置交易需依赖这个“令牌”而被系统所识别,而再次登录时,可能会返回不同的token,致使后续交易使用未匹配的token发给服务器,导致交易失败。  为解决这个问题,不得不分析toke...
            13 12 2175
            分享
          • 在8月11日的雷军年度演讲上,小米公布了自动驾驶技术方面的进展,展示其自动驾驶技术算法及全场景覆盖的能力。雷军还带来了一个自己创作的新品——新书《小米创业思考》,这本书由雷军口述,而后由徐洁云进行整理,是雷军写的第一本商业方面的书,由中信出版集团股份有限公司2022年8月1日出版。小米雷军:我们先确保做一款好车,再考虑颠覆的部分在这本书中,雷军揭露了一些小米造车方面的内幕。雷军称,对小米而言,造车是大势所趋,别无选择。雷军称,必须看到几个客观事实:第一,手机行业已经进入成熟存量竞争阶段;第二,车是最大的个人消费品,智能汽车就是当下最大的风口;第三,智能汽车是智能生态不可或缺的重要环节,它与个人...
            0 0 1080
            分享
          •        大家好,我是虚竹,首先介绍一下我自己,从事软件测试行业到现在是10年时间,毕业之后一直从事的软件测试行业。很幸运在毕业时赶上互联网这波浪潮,然后就一直在互联网公司工作,虽然那时候的软件测试技术发展还相对比较混乱,但自己因为公司业务发展的原因,硬件测试、功能测试,性能测试、自动化测试什么的也都做过。       因为我接触软件测试的时间算是相对比较早,那时候也没有相对比较全面、深入的培训体系或者说学习途径,只有通过一些前辈的指导,以及自我的学习加总结来进行自我提升。这种提升的方式,无疑是很缓慢且痛苦的,...
            0 0 2294
            分享
          • 1、开始测试1年半左右,一直在做的是游戏测试。现在对于黑盒的游戏测试感觉到迷茫,对于做游戏的黑盒测试来说,技术成长性在哪里?哪些知识能更好的帮助自己的工作?是这样的,测试入门的门槛相对其他技术工种来说不高,但可以提升空间是很大的。黑盒也好,白盒也好,其实所描绘的是测试立场和角度,最早国外上世纪提出的 是基于开发者了解内部结构去寻找问题(谓之白盒),黑盒是使用者的角度,不需要了解内部结构去验收(谓之黑盒),如果以测试策略来描绘的话,这个就是PDCA,P前面的target,这个阶段的测试目标是什么如你所言,接触服务端测试接触到了lr的基础(压力测试及负载测试),服务端相关测试还有对应的window...
            1 2 1903
            分享
      • 51testing软件测试圈微信