像 APP、WEB 这种测试工程师入门级测试技能,对大家来说经常是点点点,但是现在业内大多岗位都是服务端测试,从前端页面发起的测试很容易被替代。

面试一般会重点考察服务端的测试,说到服务端的话当然离不开接口测试,互联网测试从业者的要求越来越高,不仅仅局限于术,更要在道上有所造诣,在面试过程中的考察点一般会涉及以下几点:

(1)软实力;

(2)测试基础理论;

(3)java 基础;

(4)linux 基础;

(5)sql 基础;

(6)测试工具;

(7)自动化等。

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 用于 handler 对 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 平台编排自动化用例构建测试计划后,可发起自动化测试,用户可以根据自己的需求灵活编排冒烟测试计划或者回归测试计划,示例如下:

创建自动化测试项目

在 API 自动化测试平台中,所有的测试用例都是以项目维度来进行管理,一个自动化测试项目可以从多个 API文档项目中引用 API 信息来创建API测试用例。
进入** 项目 项目列表页,点击新建自动化测试**按钮:

在弹窗中输入相应的信息,点击确定即可:

创建自动化测试用例

进入用例管理页面,点击 添加用例 按钮,在弹窗中输入测试用例的名称,然后点击确定:

创建定时测试任务

API 自动化测试可以设置定时任务,实现项目在无人值守的情况下自动测试并且发送报告给相应的邮箱,监控项目监控情况。

进入定时任务页面,点击 新建定时任务 按钮:

在新页面中设置定时任务的周期:

点击 添加用例 按钮,设置需要定时执行的测试用例:

设置通知邮件的发送地址,然后点击 保存 按钮即可创建一个定时测试任务:

查看定时测试历史

在定时任务页面,点击相应定时任务的 历史 按钮:

在弹窗中可以看到历史的测试报告,您可以将报告导出为文件:

小结

围绕测试开发工程师的核心能力详细讲述了以上几点,其他相关知识: java 基础、linux 基础、sql 基础可在菜鸟教程学习基础知识,常见命令、语法熟练使用即可。

图中所使用的的接口管理工具是 eolink,感兴趣可以自行使用:www.eolink.com

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐