软件测试 面试之接口测试(价值2万的线下培训资料)

  1. 正则表达式提取token与Json提取token的区别:

(1)正则表达式提取的格式:

正则表达式:通过匹配左、右边界来获取我们要的值

"token":"eyJhbGciOiVdpCkf90tOLaZYN7m2tMxIlrKY"

"token":"(.+?)"

.: 表示匹配任意字符串

+: 表示匹配一次或者多次

?: 匹配一次就停止

$1$ 表示匹配第一个括号里面的动态值

(2)Json提取token

例子:

正则表达式:

Json:

  1. 接口测试中请求方式有哪几种:

post,put,get,delete

  1. 用到哪些工具做接口测试?

参考答案:jmeter

  1. JMeter测试环境怎么搭建

1)、因为JMeter是JAVA程序开发的,所以要先安装JDK;

2)、配置JAVA环境变量,包括:JAVA_HOME,PATH,CLASSPATH;

3)、双击jmeter的bin目录里面的jmeter.bat文件,就可以启动Jmeter。

  1. 什么时候会用到使用Fiddler

1)、做安全测试,检测敏感信息是否加密,拦截篡改数据;

2)、当测试时发现缺陷,用fiddler抓包,定位该问题是前端还是后台的问题;

3)、模拟弱网环境;

4)、统计单个功能的响应时间。

前端问题:点击按钮没反应、请求参数有问题、图片有误

后端问题:服务器没有响应、响应数据有问题

  1. Fiddler怎么拦截篡改数据

结合实际案例和使用步骤来讲

  1. Fiddler怎么模拟弱网测试

1)、点击规则-->自定义规则,打开fiddler的脚本编辑器,找到simulateModem

2)、设置上传和下载的延时速度

3)、点击规则-->性能,选模拟带宽

  1. 接口测试怎么测试的。

1、拿到接口文档熟悉:(服务端开发人员把接口文档写出来,我们就可以拿过来熟悉):

1)每个接口对应要实现的功能是什么

2)服务器的地址、端口、接口地址(确定访问哪个接口)

3)请求方式,请求参数有哪些,参数的约束是什么(工作当中了解请求参数的各种约束)

4)熟悉响应数据:

<1>响应的字段有哪些

<2>正确和错误的响应码(errcode)有哪些,对应的响应信息(message)是什么。例如 :errcode:4403 message:错误的请求信息

2、编写接口测试用例(接口测试用例跟功能测试的类似,只多了一个请求报文,响应报文)

1)考虑正常异常的请求参数的请求报文

2)考虑正常和异常请求后的响应报文(例如 :异常的错误码是什么,对应的错误信息是否正确)

3、执行测试用例:

我们是用jmeter执行测试用例,先建立一个线程组,再添加http请求,填写好请求地址,端口,和请求参数,设置参数化,添加断言等,最后添加查看结果树再运行。运行完后,检查接口是否通过,如果不通过,先定位下原因,如果是请求的参数有问题,修改后再进行测试,如果是接口本身存在bug,就把服务器上的日志取下来,提单给开发修改,一直到接口没问题了,就放到我们搭建好的Ant+Jmeter+Jenkins框架上做持续集成测试。

这就是我们接口测试的大概流程。

3、代码执行(执行测试用例)

或者使用python+requests+unittest+jenkins进行接口测试框架开发;

测试工程,分为:

public   公共部分  (存放公共数据方法:如封装token获取、公共数据)

testcase 用例层    (存放测试用例)

report   测试报告层(存放生成的测试报告)

runMain.py  主程序文件(调用所有接口测试用例执行并且输出测试报告)

跑完以后,使用jenkins进行持续集成,设置定时任务,五颗星策略,一般每晚上8点运行一次;

策略如下:00 20 * * *  或者 H/3 * * * *

  1. Fiddler怎么抓HTTPS的包

1、安装安全证书;

2、点击fiddler的Tools-->options-->https

3、勾选上所有选项,更换证书,重启fiddler

  1. Fiddler的抓包原理

在客户端和服务器之间建立一个代理,通过监听端口(默认是 8888),监听本机发出的请求和服务器返回的响应结果。

  1. 用jmeter做接口可以通过,但在手机上用到这接口时用不了,什么原因:

抓包,查看从手机发出去的数据有没有问题。

  1. 问:接口测试的关注点(怎么验证接口是通过的)

1)、发送给服务器的请求数据是否正确;

2)、服务器返回给客户端的信息是否和预期结果一致;

3)、进入数据库,检查接口是否实现相应的功能;

4)、接口的响应时间是否符合需求。

  1. 在进行接口的自动化测试,如果遇到token校验,你是怎么处理的?

首先需要获取token,获取token的整个思路为:

A.先进行登录

B.登录成功后

C.获取token

D.把获取的token当作下一个接口的请求参数

(上面这个题目可以这样延伸:有一个接口A,发送给服务器的数据需要从接口B中获取,怎样对A接口进行测试?

参考答案:

1)、在A接口前面添加接口B,在B接口中添加正则表达式,把A接口需要用到的数据关联出来,保存到参数中;

2)、在A接口中使用${参数名}的方式进行引用。

  1. Jmeter的断言怎么做?

参考答案:选中需要断言的请求,右键,选择响应断言,在响应断言输入框中添加要断言的值;

如果这个接口有多个请求数据,针对每个请求数据服务器返回数据都不一样的,这时候,我们就要把断言的值进行参数化,步骤是:现在本地添加一个txt文档,把参数化的值写入文档里面,然后再在jmeter选中需要断言的请求,右键,添加CSV文件,把刚才编辑好的txt文档添加进来,在响应断言输入框中使用${字段名}的方式来引用参数的值。

  1. 接口自动化做了多久呢

参考答案:每个版本都会做接口测试,开发写好接口,我们拿到接口文档之后,我们就开始做着。

  1. jenkins怎么做接口自动化?

使用python+requests+unittest+jenkins进行接口测试框架开发;

设置定时任务去跑脚本 五颗星策略 ******

  1. 接口返回的数据格式有哪些?

JSON格式 和 文本格式,常用的是JSON格式,JSON格式:体积小、传输效率更高、跨平台支持

  1. 什么样的接口,是个好的接口

参考答案:功能准确无误,响应速度快,支持多用户并发操作,安全性好

  1. 接口出错了怎么办?

参考答案:首先,我会先检查一下请求参数啊,还有其他的填入的数据是否有问题,如果这些都没问题,我会ping一下网络,看网络通不通(面试官点了点头),如果网络也没问题的话,我会去看看系统服务器有没有启动,如果服务器也没问题的话,那可能就要发给开发定位一下了。

  1. 你一个项目做过哪些接口?举例说一下你的接口测试是怎么做的?

参考答案:

1)、每个版本都会新增一些功能,对应的接口也要进行测试,一个项目的所有接口都要进行测试,比如,查询,下单,登陆,修改信息等等,开发写好一个接口后,给到我们接口文档我们就会去测试。

2)、我以下单这个接口说下是怎么测试的吧:下单这个接口用的是http协议,使用post请求方式,发送给服务器的参数有token,产品ID,购买数量,收货人地址等等,这些参数都是必传的参数。我们是使用Jmeter来做接口测试的,首先,要新建一个线程组,在线程组下面添加一个http的请求,然后填写好服务器地址,接口路径,请求方式,请求参数,因为token值是用来标识用户是否合法并且是动态变化的,这个值从登陆接口中返回来的,所以,我们要在下单这个接口的前面增加一个登陆的接口,在登陆接口中使用正则表达式把token值关联出来,然后在下单接口中使用${参数名}的方式引用;接下来还要对其他参数进行参数化,构造各种正常和异常的数据,我们先在本地创建一个txt文档,把参数填写到文档里面,在Jmeter中添加一个csv文件,填写好txt文档的路径,然后在请求参数中使用${字段名}的方式引用;接下来添加断言,检查服务器返回的结果和预期结果是不是一致的,如果断言的内容会根据发给服务器参数变化而变化,就要把断言的内容也参数化;为了遍历所有的参数,我们接下来还要添加一个循环控制器,把下单接加入到这个循环控制器里面,并设定循环次数;最后,添加查看结果树查看测试结果。

  1. 对http协议怎么理解的?

参考答案:http协议是应用层的一个数据传输协议,由请求和响应构成,主要的请求方式有get和post两种,get请求的请求数据在请求头,post请求的请求数据在请求体;响应的数据也包含响应头和响应体,常见的http响应码有200,302,400,500等等。

  1. 接口测试用例怎么写?

参考答案:我们每个版本都会有四五个接口需求,有的是新增的接口,有的是原来的接口做了一些调整,我们会查看这些接口有哪些参数,每个参数有什么约束条件,加密方式是什么,正常和异常的响应信息有哪些,然后编写测试用例来覆盖这些需求,一个版本下来大概有五六十条接口测试用例。

  1. 接口有哪些参数?

参考答案:比方说:下单接口,会有token,产品ID,购买数量,收货人地址,收件人电话等等;注册接口,会有手机号,密码,验证码这些参数;我们项目的接口有五六十个,每个接口实现的功能不一样,参数是不一样的。

  1. 24接口的状态码有哪些

参考答案:接口不一样,返回的状态码也不一样,我们接口的状态码是由开发统一定义的,比如,我们xxx这个项目,修改昵称这个接口,成功修改的状态码是0,30001表示token无效,30002表示用户不存在,还有30003等一些其他的状态码,具体意思记不太清楚了。

  1. 接口是一个一个做,还是系统做?

参考答案:我们是将这个系统的所有接口,都放在Jmeter的一个线程组下一起执行。

26.接口测试遇到过什么问题,当时是怎么操作然后出现的问题,后来又是怎么分析处理的?

参考答案:就比如最近做的这个项目,添加新商品这个接口,当库存量的值为空,接口报错了,原因是开发没有设定当库存量为空时,自动给一个0的默认值,导致后台接收不到数据。

  1. 27.面:你支付功能,付款的接口是怎么测试的呢?

我:付款的接口一般是由开发直接调试的,像支付宝、微信这些第三方支付,开发会直接调试好。

  1. 28.面:哦,那你能说一下第三方支付接口的流程吗

--- <参考支付接口流程那张流程图>

我:首先用户下订单,网站后台就会生成一个支付请求发送到第三方支付平台;支付平台收到请求后会直接发送响应给用户,展示金额等,并且要求用户输入账号密码,用户输入信息直接发送到第三方平台;付款成功后第三方平台会返回支付结果给到网站后台和用户;后台收到付款成功信息后就会生成付款成功的订单信息发给用户;大概的流程就是这样。

  1. 29.Fiddler怎么抓手机app的包?

1、手机与fiddler所的电脑连接到同一网络;

2、在fiddler设置监听端口,并允许远程终端连接;

3、在手机上填写代理服务器的地址和端口。

  1. 30.为什么要做接口测试 / 接口测试的目的

1)尽早介入测试,早发现bug,降低修复成本

2)UI界面测试无法发现底层问题

  1. 31.没有接口文档,如何进行接口测试?

参考答案:可以通过fiddler抓包获取服务器地址,url,端口号等,然后在写入到Jmeter发送。

33、requests如何安装?

参考答案:先安装python,然后在cmd通过pip install requests安装即可

引用方式: import requests

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值