像APP、WEB这种测试工程师入门级测试技能,对大家来说经常是点点点,但是现在业内大多岗位都是服务端测试,从前端页面发起的测试很容易被替代。
面试一般会重点考察服务端的测试,说到服务端的话当然离不开接口测试,互联网测试从业者的要求越来越高,不仅仅局限于术,更要在道上有所造诣,在面试过程中的考察点一般会涉及以下几点:
1、软实力考察
面试官会给到候选人一个比较有挑战性的任务,考察其面对问题的态度、分析问题的思路;如果给一个需求如何保证质量,考察责任心;沟通过程是否主动,因为测试工程师对沟通的要求相对来说是比较高的;测试的过程描述是否详细,认证细致也是测试工程师及其优秀的一种品质。
2、测试基础
什么是API?
API是(Application Programming Interface)首字母缩略词,即应用程序编程接口。API是一组用于构建软件应用程序的规程,协议和工具。API充当软件应用程序之间的接口,并允许两个软件应用程序相互通信。API是一组软件功能,可以由其他软件执行。
什么是API测试?
API测试是一种软件测试,涉及直接测试API,也是集成测试的一部分,用于检查API是否满足应用程序的功能,可靠性,性能和安全性方面的期望。在API测试中,我们主要关注软件架构的业务逻辑层。可以在包含多个API的任何软件系统上执行API测试。测试人员模拟客户端向服务器发送报文请求,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的一个过程。
涉及两大类:
1)代码内部接口调用,代码A与代码B在组合的时候,必然需要定义一些名称以及参数、类型,这种在测试中一般划分在白盒测试中,对内部逻辑进行测试。
2)系统与系统之间,通过网络数据的传递进行交互,这种在测试中一般划分在黑盒测试中,也就是看不到代码,但可以通过各种手段将网络数据发送到接口从而得到接口的响应信息,达到测试的目标。
常见的API测试类型有哪些?
API测试通常涉及以下实践:
单元测试:不依赖外部的数据库,本地调试接口,确保接口的请求、返回符合预期
功能测试:针对接口业务功能做用例设计,通过接口调用工具发起测试执行
负载测试:通过压力测试评估接口的性能
安全测试:检测接口是否存在安全漏洞
故障测试:模拟超时、依赖服务故障、网络故障等,检测接口稳定性
3、网络通讯协议和RPC通信
常见的网络协议有TCP、UDP、HTTP,常用的rpc框架有dubbo、thrift、sofa等,面试时经常会了解如下内容:
HTTP: HTTP(超文件传输协议)是一种应用层的网络协议,当前大多数web应用都构建在HTTP协议之上,目前广泛使用的是HTTP/1.1版本。它具有以下几个主要特点:
1)客户机-服务器模型,用于本地浏览器与远程WEB服务器的信息交互 ;
2)请求-响应模式,浏览器为单个事务发起连接请求,服务器在响应这个请求后立即关闭连接(开启了keep-alive除外);
3)无状态协议,协议本身对事务处理没有记忆能力,同一台客户机和服务器的相邻两次连接在HTTP看来是完全无关的,为了记录连接的状态,所以引入了Cookie和Session机制;
4)HTTP在传输层使用的是TCP协议,所以它可以保证信息传输的可靠性。
Thrift:thrift主要用于各个服务之间的跨语言远程通信,thrift通过IDL(Interface Description Language)来关联客户端和服务端。thrift主要支持以下几种服务模型,TSimpleServer: 简单的单线程服务模型,常用于测试;
TThreadPoolServer: 多线程服务模型,使用标准的阻塞式IO;TNonBlockingServer: 多线程服务模型,使用非阻塞式IO(需要使用TFramedTransport数据传输方式); THsHaServer: THsHa引入了线程池去处理,其模型读写任务放到线程池去处理,Half-sync/Half-async处理模式,Half-async是在处理IO事件上(accept/read/write io),Half-sync用于han dler对rpc的同步处理。
Dubbo:Dubbo是Alibaba开源的分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。其本质就是一个RPC分布式框架。
4、API测试常用工具
用于API测试的一些工具如下:
Eolink: https://www.eolink.com/
Curl
httpie
https://pypi.org/project/thrift/
Postman
Katalon Studio
SoapUI
Assertible
Tricentis Tosca
Apigee
JMeter
Rest Console
RoboHydra Server
SOAP Sonar
5、 自动化测试
测开工程师的职责除了业务质量保证之外,对提效的要求也非常高,一般通过自动化测试提高测试效率,Eolink平台提供了比较成熟的自动化测试工具。在Eolink(https://www.eolink.com/)平台编排自动化用例构建测试计划后,可发起自动化测试,用户可以根据自己的需求灵活编排冒烟测试计划或者回归测试计划,示例如下:
创建自动化测试项目
在API 自动化测试平台中,所有的测试用例都是以项目维度来进行管理,一个自动化测试项目可以从多个API文档项目中引用API信息来创建API测试用例。
创建自动化测试用例
进入用例管理页面,点击 添加用例 按钮,在弹窗中输入测试用例的名称,然后点击确定。
创建定时测试任务
API自动化测试可以设置定时任务,实现项目在无人值守的情况下自动测试并且发送报告给相应的邮箱,监控项目监控情况。
进入定时任务页面,点击 新建定时任务。
查看定时测试历史
在定时任务页面,点击相应定时任务的 【历史】 按钮。
在弹窗中可以看到历史的测试报告,您可以将报告导出为文件。