表 1.1.1 工作任务单
续表
生活中常见的接口主要包括硬件接口和软件接口,如表 1.1.2 所示。硬件接口指的是两个硬件设备之间的连接方式,它既包括物理上的接口,还包括逻辑上的数据传送协议。软件接口是指两个不同的系统或一个系统的两个不同的功能模块之间相互连接的部分。在软件测试中,常见的软件接口有两种:一种是图形用户接口(Graphical User Interface,GUI),它是人与软件之间的交互界面,另一种是应用程序编程接口(Application Programming Interface,API)。
表 1.1.2 常见接口类型
应用程序编程接口(API)是一组定义、程序及协议的集合,是用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无须访问源代码,或了解内部工作机制的细节。API可实现计算机软件之间的相互通信,它的一个主要功能是提供通用功能集。API同时也是一种中间件,为各种不同平台提供数据共享。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的可维护性和可扩展性。
API作为应用程序编程接口,可以使用不同的编程语言进行API的开发,另外接口的表现形式也不同,最常用的接口形式见表 1.1.3。
表 1.1.3 接口分类表
基于浏览器/服务器模式(Brower/Server,B/S)的软件系统接口大多数为HTTP(HyperText Transfer Protocol,HTTP)接口,本书重点介绍HTTP接口的测试方法。
接口测试是测试系统组件间接口的一种测试,主要用于测试系统与外部其他系统之间的接口,以及系统内部各个子模块之间的接口。测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。
接口测试的目的主要有以下几个方面:
①能够提早发现Bug,符合质量控制前移的理念。
②接口测试低成本高效益,因为接口测试可以自动化并且是持续集成的。
③接口测试从用户的角度对系统接口进行全面检测。实际项目中,接口测试会覆盖一定程度的业务逻辑。
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(World Wide Web,WWW)服务器传输超文本到本地浏览器的传送协议。
HTTP是一个基于TCP / IP通信协议来传递数据(HTML文件、图片文件、查询结果等)的协议。
HTTP是一个属于应用层的面向对象的协议,由于其简单、快速的方式,适用于分布式超媒体信息系统。HTTP协议工作于客户端-服务端架构,浏览器作为HTTP客户端通过URL向HTTP服务端(Web服务器)发送所有请求,Web服务器接收到请求后向客户端发送响应信息。
(1)HTTP的主要特点
HTTP的主要特点见表 1.1.4。
表 1.1.4 HTTP主要特点
(2)URL
HTTP使用统一资源标识符(Uniform Resource Identifier,URI)来传输数据和建立连接。统一资源定位符(Uniform Resource Locator,URL)是一种特殊类型的URI,包含了用于查找某个资源的足够的信息,是互联网上用来标识某一处资源的地址。
一个完整的URL包括 7 个部分,它的语法格式为(方括号为可选项):
Protocol://hostname[:port] /path/[;parametrs][?query]#fragment
具体内容如表 1.1.5 所示。
表 1.1.5 URL组成
以百度搜索为例,说明URL的各部分组成。在百度页面搜索URL,得到结果如图 1.1.1所示。
由上面URL可以看到的协议为https;主机名为www.baidu.com;端口省略,采用默认;查询有多个参数,用“&”符号进行分割,其中包括搜索关键字wd =URL。
图 1.1.1 URL组成
URL可以写为https://www. baidu.com/s?wd = url,也可以访问到数据,如图 1.1.2所示。
图 1.1.2 简写URL
客户端发送一个HTTP请求到服务器,信息包括请求行、请求头部、空行和请求数据 4个部分,每部分具体描述见表 1.1.6。
表 1.1.6 HTTP请求信息
下面通过HTTP发送GET请求和POST请求来分析HTTP请求信息。
(1)百度搜索发送GET请求
在百度搜索发送相应GET请求,使用工具软件Fiddler得到HTTP请求信息如图 1.1.3所示。
图 1.1.3 GET请求信息
如图 1.1.3 所示,第一行为请求行,包括请求方法GET、请求的URL和HTTP协议标准,从第二行开始都是请求的头部信息,最后一行为空行部分,由于请求方法为GET,请求数据为空。
(2)百度翻译发送POST请求
在百度翻译发送相应POST请求,使用工具软件Fiddler得到HTTP请求信息,如图 1.1.4 所示。
图 1.1.4 POST请求信息
如图 1.1.4 所示,第一行为请求行,包括请求方法POST、请求的URL和HTTP协议标准,从第二行到第十行是请求的头部信息,在头部信息结束后,有一行为空行部分,最后两行为请求数据的内容。
当服务器接收并处理客户端发过来的请求后,会返回一个HTTP的响应信息,HTTP响应由 4 个部分组成,分别是:状态行、响应头、空行和响应信息,如表 1.1.7 所示。
表 1.1.7 HTTP响应信息
图 1.1.5 是百度搜索发送GET请求:https://www.baidu.com/s?wd = url的HTTP响应信息。
图 1.1.5 HTTP响应信息
由图中可以看到第一行为状态行,HTTP版本为 1.1,状态码为 200,状态消息为OK。从第二行开始为响应头,其中Date为生成响应的日期和时间,Content-Type类型是HTML(text/html),编码类型是UTF-8,响应消息长度Content-Length为 419913,响应头部之后是空行部分,最后的html部分为响应信息。
Postman是一款强大的网页调试、测试工具,分为客户端版和Chrome浏览器插件版,Postman客户端可以安装在MacOS、Windows和Linux不同操作平台下。Postman为用户提供强大的Web API & HTTP请求调试和测试功能。Postman能够发送任何类型的HTTP请求,附带任何数量的参数和请求头,是一款非常实用的调试和测试工具。
软件特点:
①支持各种请求类型:GET、POST、PUT、PATCH、DELETE等。
②支持在线存储数据,通过账号就可以进行数据迁移。
③很方便地支持请求头headers和请求参数的设置。
④支持不同的认证机制,包括Basic Auth,Digest Auth,OAuth 1.0,OAuth 2.0 等。
⑤响应数据是自动按照语法格式高亮的,包括HTML,JSON和XML。
Newman是Postman的命令行集合运行器,它允许用户直接从命令行运行和测试Postman集合,Newman为node. js的第三方库,因此首先要安装node. js软件,然后利用node的npm命令安装Newman。Postman与Newman结合可以批量运行API达到API自动化测试的目的。
用户管理系统是基于Python环境的Tornado框架,项目可以部署到Windows、Linux、Mac OS等系统环境上,项目配置过程需要在Python环境中利用pip安装Tornado框架。
根据任务描述和资讯内容,对工作任务进行分析和分解,按照任务执行的顺序填写任务实施计划表(表 1.1.8)。
表 1.1.8 任务实施计划表
根据任务实施计划和软件安装参考资料,下载Postman、Node. js、Newman、html报告生成包和Python的Windows安装包,填写任务实施决策表(表 1.1.9)。
表 1.1.9 任务实施决策表
参考软件安装教程,按任务计划表安装相应软件,安装成功后截图填写软件安装过程表(表 1.1.10)。
表 1.1.10 软件安装过程表
在Windows系统部署和配置用户管理系统中,填写项目部署和配置过程表(表 1.1.11)。
表 1.1.11 项目部署和配置过程表
填写学习行动检查与评价表(表 1.1.12)。
表 1.1.12 学习行动检查与评价表
续表
①HTTP请求包括几个部分内容?HTTP响应包括几个部分内容?
②简述HTTP请求方法和每个方法的功能。
③简述常见的HTTP状态码和分类。