2024最新软件测试面试I100+面试题及答案I持续更新中

 目录

一.介绍一下你们是如何做接口测试的

二. http协议的组成有哪些(消息或者报文的组成)? 

三. http请求常用的响应码有哪些? 

四. get和post方法有什么区别? 

五.你们是怎么设计接口测试用例的(你们是怎么来测试接口的) 

六.了解抓包工具么?说说你用抓包工具做什么?

 七.如何判断接口测试的结果是否正确? 

八. 接口的关联了解么?怎么做接口的关联测试? 

九.接口文档一般包含哪些内容? 

十.怎么修改一个请求的响应结果


一.介绍一下你们是如何做接口测试的

1、我们项目的接口测试是在UI界面出来之前,开发人员编写完接口并发布之后进行的测试,主要验证接口功能的正确性和容错性(容错,对错误的访问和输入的处理),开发人员提供给我们接口文档,我们会依据接口文档来提取测试点,一般会从功能,业务逻辑,异常和安全方面去考虑,功能的主要是验证接口功能的正确性,业务逻辑主要是看接口之间的业务依赖关系,异常主要是从请求参数异常以及参数值的异常来考虑,必填参数不传,参数值为空,超过规定长度,不符合类型规范等,安全方面主要从对接口加密参数的解析方面考虑,编写接口测试用例。

2、接口测试我们使用的是开源工具jmeter,依照接口测试用例转化为jmeter的脚本,在jmeter的测试计划中添加线程组,线程组下添加http请求,填入我们的接口url地址,选择get或者post方法,传参数来执行接口测试,我们通过添加响应断言来判断请求返回的响应码或返回数据是否是我们预期的结果,通过断言结果来判断测试用例是否通过,再使用查看结果树或聚合报告等来查看测试用例的执行结果。

3、有的接口之间会有关联性,比如登录接口和一些业务接口,这种情况我们就会在登录接口执行之后,使用json提取器,边界提取器或者正则表达式提取器来获取业务接口所需要的动态参数值(一般是sessionID或者token)存到变量当中,业务接口在执行的时候可以将这个变量作为参数传入。

执行接口测试后,如果发现问题,会及时提交给开发人员进行修改,修改后再进行回归测试。

4、除了jmeter,我们也会使用postman来进行接口测试

二. http协议的组成有哪些(消息或者报文的组成)? 

HTTP请求由三部分组成,分别是:请求行、请求消息报头、请求正文

HTTP响应也是由三部分组成,分别是:响应行、响应消息报头、响应正文

三. http请求常用的响应码有哪些? 

状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
常见状态代码、状态描述、说明:
200 OK      //客户端请求成功
400 Bad Request  //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
403 Forbidden  //服务器收到请求,但是拒绝提供服务
404 Not Found  //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

四. get和post方法有什么区别? 

  1. Get和post均为http协议的方法,他们的主要区别是传参方式不同,GET把参数包含在URL地址中传递,POST通过body体传递参数
  2. get传送的数据量较小。post传送的数据量较大,一般被默认为不受限制。但理论上还是有限制的。
  3. get安全性相对较低,主要是因为get方法是通过url传递参数,参数信息很容易被普通用户看到,post安全性相对较高,但是执行效率get比Post方法高一些。

五.你们是怎么设计接口测试用例的(你们是怎么来测试接口的) 

我们会依据接口文档来提取测试点,一般会从功能,业务逻辑,异常和安全方面去考虑,来编写测试用例,功能的主要是验证接口功能的正确性,业务逻辑主要是看接口之间的业务依赖关系,异常主要是从请求参数异常以及参数值的异常来考虑,必填参数不传,参数值为空,超过规定长度,不符合类型规范,特殊字符等,安全方面主要从对接口加密参数的解析方面考虑。

六.了解抓包工具么?说说你用抓包工具做什么?

了解,使用过抓包工具fiddler。

1. 抓包工具主要是拦截查看网络数据包内容的软件,分析页面的请求方式,请求的地址,参数,以及cookie等,还可以用来检测页面的返回状态码设置是否正确,检测网页的跳转。

2.可以设置断点,按照我们的需要临时修改请求和响应的数据。

3.还可以通过设置请求和响应的等待时间来模拟弱网的情况。

4.我们主要用抓包工具来协助我们定位发现的bug是前端问题还是后端问题。

5.通过自动应答器,进行mock数据的模拟,可以进行前端页面调试和测试。

6.还可以通过组合器进行接口测试,但我们通常不用,我们的接口测试一般会使用postman和jmeter。

抓包工具的原理主要是利用代理的方式在客户端和服务器之间获取http的请求和响应信息

 七.如何判断接口测试的结果是否正确? 

我们通常会使用Jmeter来作为接口测试的工具,我们可以通过在Jmeter中使用响应断言来判断接口的返回结果是否符合我们的预期,以此来确定接口测试结果的正确性。响应断言可以判断响应码,响应信息和响应体中的信息,获取信息后与我们预期的结果做比较,一致则表明结果是正确的,不一致则判定为失败。

八. 接口的关联了解么?怎么做接口的关联测试? 

了解,我们之前做过关联接口的测试。比如我们的加入购物车接口需要传入用户sessionID,而这个sessionID值是动态,是需要登录接口请求成功后在响应文本中才能获取的,那么我们在Jmeter中就需要先运行登录的接口请求,然后通过Jmeter的后置处理器,比如边界提取器,正则表达式提取器或者JSON提取器来获取登录接口响应结果中的sessionID值,将它存入一个变量中传给加入购物车的接口,添加购物车接口就可以请求成功,这样两个接口就进行了关联测试。

九.接口文档一般包含哪些内容? 

接口文档一般是开发人员提供给我们的,作为接口测试的需求文档,一般包括:接口的名称,接口的访问地址url,接口的请求方法,接口的请求参数类型,接口的响应参数类型,以及对应的请求和响应的示例,请求和响应的数据一般都是json格式的。我们会依据接口文档来编写接口测试用例,先验证在合法参数传递的情况下接口能够正常返回符合要求的数据,还会会考虑参数个数的异常,比如必填参数不传,非必填参数不传,或者多参数的情况,还要考虑参数值的异常,这就需要我们使用等价类和边界值等方法来进行设计,参数值为空,超过长度,不符合输入的类型等,来查看返回的错误码和提示信息是否符合接口文档的需求,以此来检验接口的容错性。还会考虑接口提供的错误代码,通过参数传递模拟对应的场景来验证是否会返回对应的错误代码。

十.怎么修改一个请求的响应结果

我们会使用抓包工具fiddler来修改一个请求的响应结果。

一是通过设置响应断点的方式,拦截响应回来的数据,进行修改后再继续执行,就可以临时修改响应结果,比如更改返回的响应码或者可以返回一个图片或文件。

二是也可以通过fiddler的AutoResponder(自动答复器),来修改一个请求响应回来的数据,也是可以更改返回的响应码或者返回图片或文件。

最后感谢每一个认真阅读我文章的朋友,整理了一大波资料和学习包,大家如果需要的话可以直接抱走~

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值