敏捷测试价值观、方法和实践读书笔记(8)

简介: 本文介绍了API的基础知识,区分了Web Service和Web API的概念,详细阐述了Web Service中的SOAP服务和REST服务的特点及区别。同时,文章还探讨了如何在项目中进行API测试,包括API测试的类型和实施阶段,强调了API在现代软件开发中的重要性和优势。

API测试

API基础介绍

1Web Service

Web Service通常使安全用XML(可扩展标记语言),这意味着其比json更

Web Service是 WebAPI的子集,其仅包含 SOAP、REST和XML-REC

Web Service需要使用网络才能操作。

2. Web API

WebAPI通常使用 JSON(JavaScript Objeet Notation)格式传输数据。

Web API是 Web Services 的超集。除了前面提到的三种类型,如JSON-RPC。

Web APL不一定需要网络操作。

介绍Web Services

客户端、Web 服务端和执行操作的网络。

操作是指客户端-Web 服务端体系结构中的请求和响应。

客户端是请求 WebServices 的所有应用程序或软件系统的集合,是服务消费者;

Web 服务端是提供 WetServices 的所有应用程序或软件系统的集合,是服务提供者。

Web Services 的重要元素

(1)SOAP

Web Services 使用简单对象访问协议(Simple Object Access Protocol,SOAP),该协议使用 XML 作为报文格式。SOAP 是有状态的协议,所有请求和响应都是通过 XML 同时进行的,没有像 REST 服务那样显式地提供 GET、PUT、POST 或 DELETE 等方法。

(2)WSDL

SOAP 请求会使用 Web Services 描述语言( Web Service DescriptionLanguage, WSDL)。WSDL 是 Web Services 的一个非常重要的元素。它定义了特定请求选择所使用的 WebServices 类型,并且使用 XML 格式的文件描述 Web Services 提供的功能。

UDDI(Universal Description Discovery and Integration)也是非常有用的元素,因为 Web服务端是提供 Web Services 的服务提供者,对于服务提供者来说,UDDI 可用来发现、描述和发布 Web Services。UDDI负责让客户端査找(UDDI为 WSDL 提供了一个存储库)WSDL 的 XML 文件位置,这个 XML 文件也是 Web Services 的定义和描述方式。

Web Services 主要包括2种类型:REST 服务和 SOAP 服务

(1)REST服务

REST(Representational State Transfer)是一种无状态服务。

  • GET:此方法用来检索使用 PUT 或 POST 等任何方法发送到 Web 服务端的信息。此方法没有请求主体,执行成功后会得到响应状态码 200。
  • POST:此方法用于请求主体、指定 URL、文档键、上下文键等创建文档或记录到 Web 服务端,使用 GET 方法来检索 POST 到 Web 服务端的内容,执行成功后会得到响应状态码 201。
  • PUT:此方法用于更新已存在于 Web 服务端的文档或记录,执行成功后会得到响应状态码 200 或 201。
  • DELETE: 此方法用于删除在 Web 服务端的任何记录,执行成功后将会得到响应状态码 204(没有内容)。

(2)SOAP服务

SOAP 服务是指简单对象访问协议,其是使用 XML 语言的有状态服务。SOAP:

  • SOAP头和正文
  • 用来发送 SOAP消息的协议

  • 服务提供者(Publish()):提供 Web 服务的所有软件系统或应用程序。
  • 服务消费者(Find()):请求 Web 服务的所有软件系统或应用程序。
  • 服务注册(Bind()):由服务提供者提供有关 Web 服务的所有信息的注册表或存储库
  1. Publish(),服务提供者在服务注册中心或存储库中提供关于 Web 服务的所有细节;
  2. Find(),服务请求内容主要是客户端应用程序从存储库(有时是 WSDL、XML 文件)查找关于 Web 服务的详细信息: 第三个阶段是 Bind(),客户端应用程序或服务消费者与服务提供者同步,以达成 Web 服务的最终实现。

3.SOAP 服务与 REST 服务的不同之处

  1. SOAP 服务比 REST 服务慢。使用 XML 数据格式使 SOAP 服务在请求处理时花费了更多的时间,而 REST 服务使用轻量级的 JSON 格式,效率更高。
  2. 通常 SOAP 服务比 REST 服务更安全,虽然 SOAP 服务和 REST 服务都可以使用SSL 加密,但是除了 SSL,SOAP 服务还提供 WSS 加密。
  3. SOAP 服务没有任何内建方法,而 REST 服务有 GET、PUT、POST 和 DELETE
  4. SOAP 服务是有状态的,而 REST 服务是无状态的。
  5. 在 SOAP 服务中,请求和响应主体只支持 XM 数据格式;而在 REST 服务中,请求和响应主体支持许多数据格式,如JSON、XML、纯文本等。

在项目中如何进行API测试

基于 API 的应用程序在这几年流行的原因如下。

首先,与传统应用程序/软件相比,基于 AP1的应用程序具有更好的可伸缩性,代码开发速度更快,而相同的 API 不需要进行任何主要代码或基础设施重改就可以服务更多的请求。

其次,开发团队不需要在每次开发特性或应用程序时都从头开始编码。

再次,API支持的独立应用程序或基于 APL的软件产品都可以轻松与其他系统集成。

最后,通过 API 可以实现系统与系统,以及系统内部的解耦,降低系统的代码维护成本,正是基于 API 的优势。

2002 年,亚马逊创始人杰夫·贝索斯向员工下达了“API宣言”

  • 所有团队将通过服务接口公开他们的数据与功能。
  • 团队之间必须通过这些接口通信。
  • 其他形式的进程通信都是不被允许的,如不允许直接链接、不允许直接读取另一团队的数据储存、不允许共享内存模型、不允许设立任何“后门”。通过网络服务接口调用是唯一允许的通信方式。
  • 使用什么技术并不重要。无论是 HTTP、CORBA、PubSub,还是自定义协议,都不重要。
  • 所有服务接口,无一例外,都必须从头到尾地使用可外部化的设计,团队必须计划和设计能提供给外部开发人员使用的公开接口。任何违反指令的人都将被解雇。
  • 谢谢你,祝你有美好的一天!

API 测试类型

·功能

·性能

·安全

两个阶段

·工具选型

·收集需求和识别约束

·评估可用工具

·PoC

·具体实施

·启动准备

·正式启动

·CICD

后面内容,我认为使用价值不大,忽略

目录
相关文章
|
17天前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
33 4
|
19天前
|
人工智能 JavaScript 前端开发
自动化测试框架的演进与实践###
本文深入探讨了自动化测试框架从诞生至今的发展历程,重点分析了当前主流框架的优势与局限性,并结合实际案例,阐述了如何根据项目需求选择合适的自动化测试策略。文章还展望了未来自动化测试领域的技术趋势,为读者提供了宝贵的实践经验和前瞻性思考。 ###
|
17天前
|
测试技术 Python
探索软件测试的深度与广度:从理论到实践
在数字化时代,软件已成为我们生活中不可或缺的一部分。随着技术的不断进步和用户需求的多样化,确保软件质量变得尤为重要。本文将深入浅出地介绍软件测试的核心概念、类型及其在软件开发生命周期中的重要性。我们将通过实际案例,展示如何实施有效的测试策略,并探讨自动化测试的未来趋势,旨在为读者提供一套完整的软件测试知识体系,帮助提升软件质量和开发效率。
|
18天前
|
测试技术 Python
探索软件测试的奥秘:从理论到实践
在软件开发的宇宙中,软件测试犹如一颗璀璨的星辰,指引着质量的方向。本文将带你穿梭于软件测试的理论与实践之间,揭示其内在的逻辑和魅力。从测试的重要性出发,我们将探讨不同类型的测试方法,并通过实际案例分析,深入理解测试用例的设计和应用。最后,我们将通过一个代码示例,展示如何将理论知识转化为实际操作,确保软件质量的同时,也提升你的测试技能。让我们一起踏上这段探索之旅,发现软件测试的无限可能。
|
21天前
|
jenkins 测试技术 持续交付
自动化测试框架的搭建与实践
在软件开发领域,自动化测试是提升开发效率、确保软件质量的关键手段。本文将引导读者理解自动化测试的重要性,并介绍如何搭建一个基本的自动化测试框架。通过具体示例和步骤,我们将探索如何有效实施自动化测试策略,以实现软件开发流程的优化。
43 7
|
20天前
|
测试技术
探索软件测试的奥秘:从理论到实践
本文深入探讨了软件测试的基本概念、重要性、主要类型以及实施策略。通过分析不同测试阶段和相应的测试方法,文章旨在为读者提供一套完整的软件测试知识体系,帮助他们更好地理解和应用测试技术,确保软件产品的质量和可靠性。
36 4
|
23天前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
37 2
|
15天前
|
监控 搜索推荐 测试技术
电商API的测试与用途:深度解析与实践
在电子商务蓬勃发展的今天,电商API成为连接电商平台、商家、消费者和第三方开发者的重要桥梁。本文深入探讨了电商API的核心功能,包括订单管理、商品管理、用户管理、支付管理和物流管理,并介绍了有效的测试技巧,如理解API文档、设计测试用例、搭建测试环境、自动化测试、压力测试、安全性测试等。文章还详细阐述了电商API的多样化用途,如商品信息获取、订单管理自动化、用户数据管理、库存同步、物流跟踪、支付处理、促销活动管理、评价管理、数据报告和分析、扩展平台功能及跨境电商等,旨在为开发者和电商平台提供有益的参考。
23 0
|
22天前
|
人工智能 数据管理 jenkins
探索软件测试中的自动化框架:从基础到高级实践
在当今快速发展的软件行业中,自动化测试已成为提高开发效率和保障产品质量的关键手段。本文将深入探讨软件测试自动化的各个方面,包括其重要性、主流的自动化测试框架、以及如何有效地实施自动化测试策略。我们还将通过案例分析,展示自动化测试在实际项目中的应用效果,以及面临的挑战和解决方案。无论是软件开发者还是测试工程师,了解并掌握自动化测试技术都将极大提升工作效率和产品质量。
42 0
|
4天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
30 11
下一篇
DataWorks