1.你是如何把控、推进测试流程的?

首先,测试之前,我会做好测试计划、测试人力分配、工作量的估算、测试策略、测试风险评估等;其次,测试中,我会尽量严格按照测试计划来执行,如果实际测试中出现问题,也会随机应变的进行处理,不会耽误测试进度;最后,测试工作完成之后,我会组织本组人员进行项目复盘总结,针对测试过程中出现的问题进行分析,以便后续工作避免再次发生。

2.讲一讲你了解的测试基本理论?

1)测试需求分析:测试工作之前,我们会拿到一个产品需求文档,针对这个文档,我们会和产品经理、交互、视觉、相关开发和测试人员进行一次需求文档澄清,如果产品比较复杂,可能也会分布进行多次澄清,澄清过程其实是一个大家思维碰撞的一个过程,各个角色都会提出各自的观点和看法,当然也会有一下会议的遗留事项,这就需要上级领导确认后再通知到大家,总之,需求澄清是让大家了解接下来需要做什么样的产品,以便制定计划和方案。

2)测试流程建立:测试流程其实是在测试之前做好测试计划,并在测试中严格按照测试计划执行,需要确定的有:测试目标、测试范围、测试环境、测试工具、测试策略、测试风险等,还有人力资源分配、工作量的估算、测试时间、任务分配、培训计划等。

3)测试方案编写:测试方案是根据产品文档、交互图、视觉图进行编写的Xmind格式的文件,也有一些word形式的,一般是在开发写代码的过程中进行编写,开发提 测之前,与产品经理、交互、视觉、开发拉会进行测试方案的评审,评审通过后,开发进行提 测评审,与开发沟通好是否有遗留事项。

4)测试用例设计:测试用例设计一般是在测试方案编写完成之后,根据测试方案进行每个场景的用例设计,用例设计的方法有很多,常用的有:等价类、边界值、判定表、正交试验、流程分析、特殊场景的异常分析、错误猜测等。测试用例比较重要的几个字段:用例名称、前提条件、测试步骤、预期结果、备注、优先级等。

3.你接口测试是怎么做的?

首先,要找开发要接口文档,如果没有接口文档,就要了解被测试的业务,理解设计层面的业务,不仅仅局限于需求层面的业务,就是你要知道传什么参数,返回什么样的状态码,然后设计一部分接口文档,与开发沟通一致。

一个接口文档中应该包括以下内容:接口名称简要描述、请求的url、请求方式(get/post)、请求的参数(名称,类型,选填/必填,含义,取值范围,缺省值)、请求示例、返回示例、返回参数说明、其它返回错误代码说明等。

接口测试计划需要考虑人力分配和在哪个阶段进行接口测试,有什么风险以及如何应对。

接口测试方案需要考虑测试的重点、次重点的划分,以及如何测试,测试难点以及如何解决,接口测试环境部署,以及使用什么工具进行接口测试,我主要使用postman、Jmeter,python下的requests插件,

针对http协议进行接口测试,需要考虑:

1)从设计层面的业务考虑,传入不同的参数,会得到不同的结果

2)从协议出发考虑,比如:请求中给出错误的cookie中的sessionID,更换User-Agent,更换Content-Type,响应中header的状态码等

3)从接口所依赖的第三方考虑,也就是外部依赖,这个问题是接口测试中的难点,比如,接口中的某个值是从数据库中获取的,要考虑的是测试数据超出数据库的范围,或者还要考虑数据库服务器的故障情况(可恢复性测试)

4)还要考虑系统测试中做不到的测试用例,比如,表单提交时,系统测试只能给出一个空的参数,没办法做到不给参数,接口测试中可以做到

4.用postman怎么做的接口测试?

postman介绍:

postman可以模拟各种http请求,有Collection测试集合功能,是requests的集合,一个Collection可以包含多个request,如果把一个request看做一个testcase,那么Collection可以看作一个testsuite,Collection还可以import出来分享给团队成员。

人性化的response整理,一般在用其他工具测试时,response的内容通常都是纯文字的raw,但如果是JSON,就是一整行的JSON,这会造成阅读障碍,postman可以针对response内容的格式自动美化,JSON、XML或者HTML都会整理成可以阅读的格式。

内置测试脚本语言,postman支持编写测试脚本,可以快速检测request的结果,并返回测试结果。

设定变量与环境,postman可以自由设定变量与环境,一般我们在编辑request,校验response的时候,总需要重复输入某些字符,比如url,我们可以设定变量来保存这些值,把变量保存在不同的环境中。

在实现接口自动化测试时,经常会遇到接口参数依赖的问题,比如,调取某些接口的时候,需要先获取接口的sign值,而每次请求返回的sign值又是不一样的,这种情况下,就要用到postman中设置环境变量功能,可以在Pre-request Script中将接口返回的response设置为环境变量,供后续接口使用,类似参数化,使用方法为{{}}加上生成的变量获取环境变量。

示例:postman发送合法登录请求的步骤如下

1)新建Collection

2)新建request

3)参照接口文档,输入url

4)选择该接口的方法

5)post请求的正文参数

6)确定请求的Content-Type

7)按照接口文档输入参数,KEY和VALUE前后不能有空格

8)保存

9)Send发送请求

10)观察响应的正文

 11)断言写在Tests中,使用postman代码片段进行断言,比如status code,response body,response time,也可以自己写断言,actual、excepted

5.讲一下OSI七层参考网络协议模型

七层:从下往上,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

互联网四层模型:从下往上,物理链路层、网络层(ip协议)、传输层(TCP,UDP协议)、应用层(HTTP协议)。

6.讲一下你了解的TCP协议

TCP协议是可靠的传输协议,它是传输层协议,是全双工通信方式。

TCP传输数据是按照顺序传输的,每一个数据包都有序列号,若是接收方发现某个数据没有收到,可以告知发送发重新发哪个包即可。

在传输数据之前,要建立TCP连接,两个方向上都要建立连接,也就是3次握手,第一次握手:客户端发送SYN报文,第二次握手服务端发送SYN和ACK报文,第三次握手客户端发送ACK报文

每次TCP传输完数据之后,要从两个方向上断开连接,也就是四次挥手,断开连接释放资源

 

 7.HTTP协议的特征

1)灵活

2)明文传输,头部信息和数据正文都是明文传输

3)无连接,当服务器响应了一个客户端的http请求之后,服务器就会断开与客户端的连接

4)无状态,断开连接之后,服务器不会主动记录与客户端交流的数据。为解决无连接问题,客户端保留cookie文件,cookie中有sessionID,服务端也保存sessionID,且sessionID与ip地址绑定,提高安全性。

8.关系型数据库和非关系型数据库的区别?

关系型数据库的数据结构是表。

优点:

1)易于维护:都是表结构,格式一致

2)使用方便:SQL语言通用,可用于复杂查询

3)复杂操作:可用于一个表以及多个表之间非常复杂的查询

缺点:

1)读写性能差,尤其是大量数据个高效率读写

2)固定表结构,灵活度较差

3)高并发读写需求,硬盘I/O是一个较大的瓶颈

非关系型数据库是一种数据结构存储方法的集合,可以是文档或者键值对,图形。

优点:

1)格式灵活:存储格式可以是key-value形式、文档形式、图形形式等,使用灵活,应用场景广泛

2)速度快:可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘

3)数据结构相对复杂,复杂查询方面较差        

查看原文