- 正则表达式提取token与Json提取token的区别:
(1)正则表达式提取的格式: 正则表达式:通过匹配左、右边界来获取我们要的值 "token":"eyJhbGciOiVdpCkf90tOLaZYN7m2tMxIlrKY" "token":"(.+?)" .: 表示匹配任意字符串 +: 表示匹配一次或者多次 ?: 匹配一次就停止 $1$ 表示匹配第一个括号里面的动态值 (2)Json提取token | 例子: 正则表达式: Json: |
- 接口测试中请求方式有哪几种:
post,put,get,delete |
- 用到哪些工具做接口测试?
参考答案:jmeter |
- JMeter测试环境怎么搭建
1)、因为JMeter是JAVA程序开发的,所以要先安装JDK; 2)、配置JAVA环境变量,包括:JAVA_HOME,PATH,CLASSPATH; 3)、双击jmeter的bin目录里面的jmeter.bat文件,就可以启动Jmeter。 |
- 什么时候会用到使用Fiddler
1)、做安全测试,检测敏感信息是否加密,拦截篡改数据; 2)、当测试时发现缺陷,用fiddler抓包,定位该问题是前端还是后台的问题; 3)、模拟弱网环境; 4)、统计单个功能的响应时间。 前端问题:点击按钮没反应、请求参数有问题、图片有误 后端问题:服务器没有响应、响应数据有问题 |
- Fiddler怎么拦截篡改数据
结合实际案例和使用步骤来讲 |
- Fiddler怎么模拟弱网测试
1)、点击规则-->自定义规则,打开fiddler的脚本编辑器,找到simulateModem 2)、设置上传和下载的延时速度 3)、点击规则-->性能,选模拟带宽 |
- 接口测试怎么测试的。
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 * * * * |
- Fiddler怎么抓HTTPS的包
1、安装安全证书; 2、点击fiddler的Tools-->options-->https 3、勾选上所有选项,更换证书,重启fiddler |
- Fiddler的抓包原理
在客户端和服务器之间建立一个代理,通过监听端口(默认是 8888),监听本机发出的请求和服务器返回的响应结果。 |
- 用jmeter做接口可以通过,但在手机上用到这接口时用不了,什么原因:
抓包,查看从手机发出去的数据有没有问题。 |
- 问:接口测试的关注点(怎么验证接口是通过的)
1)、发送给服务器的请求数据是否正确; 2)、服务器返回给客户端的信息是否和预期结果一致; 3)、进入数据库,检查接口是否实现相应的功能; 4)、接口的响应时间是否符合需求。 |
- 在进行接口的自动化测试,如果遇到token校验,你是怎么处理的?
首先需要获取token,获取token的整个思路为: A.先进行登录 B.登录成功后 C.获取token D.把获取的token当作下一个接口的请求参数 (上面这个题目可以这样延伸:有一个接口A,发送给服务器的数据需要从接口B中获取,怎样对A接口进行测试? 参考答案: 1)、在A接口前面添加接口B,在B接口中添加正则表达式,把A接口需要用到的数据关联出来,保存到参数中; 2)、在A接口中使用${参数名}的方式进行引用。 |
- Jmeter的断言怎么做?
参考答案:选中需要断言的请求,右键,选择响应断言,在响应断言输入框中添加要断言的值; 如果这个接口有多个请求数据,针对每个请求数据服务器返回数据都不一样的,这时候,我们就要把断言的值进行参数化,步骤是:现在本地添加一个txt文档,把参数化的值写入文档里面,然后再在jmeter选中需要断言的请求,右键,添加CSV文件,把刚才编辑好的txt文档添加进来,在响应断言输入框中使用${字段名}的方式来引用参数的值。 |
- 接口自动化做了多久呢
参考答案:每个版本都会做接口测试,开发写好接口,我们拿到接口文档之后,我们就开始做着。 |
- jenkins怎么做接口自动化?
使用python+requests+unittest+jenkins进行接口测试框架开发; 设置定时任务去跑脚本 五颗星策略 ****** |
- 接口返回的数据格式有哪些?
JSON格式 和 文本格式,常用的是JSON格式,JSON格式:体积小、传输效率更高、跨平台支持 |
- 什么样的接口,是个好的接口
参考答案:功能准确无误,响应速度快,支持多用户并发操作,安全性好 |
- 接口出错了怎么办?
参考答案:首先,我会先检查一下请求参数啊,还有其他的填入的数据是否有问题,如果这些都没问题,我会ping一下网络,看网络通不通(面试官点了点头),如果网络也没问题的话,我会去看看系统服务器有没有启动,如果服务器也没问题的话,那可能就要发给开发定位一下了。 |
- 你一个项目做过哪些接口?举例说一下你的接口测试是怎么做的?
参考答案: 1)、每个版本都会新增一些功能,对应的接口也要进行测试,一个项目的所有接口都要进行测试,比如,查询,下单,登陆,修改信息等等,开发写好一个接口后,给到我们接口文档我们就会去测试。 2)、我以下单这个接口说下是怎么测试的吧:下单这个接口用的是http协议,使用post请求方式,发送给服务器的参数有token,产品ID,购买数量,收货人地址等等,这些参数都是必传的参数。我们是使用Jmeter来做接口测试的,首先,要新建一个线程组,在线程组下面添加一个http的请求,然后填写好服务器地址,接口路径,请求方式,请求参数,因为token值是用来标识用户是否合法并且是动态变化的,这个值从登陆接口中返回来的,所以,我们要在下单这个接口的前面增加一个登陆的接口,在登陆接口中使用正则表达式把token值关联出来,然后在下单接口中使用${参数名}的方式引用;接下来还要对其他参数进行参数化,构造各种正常和异常的数据,我们先在本地创建一个txt文档,把参数填写到文档里面,在Jmeter中添加一个csv文件,填写好txt文档的路径,然后在请求参数中使用${字段名}的方式引用;接下来添加断言,检查服务器返回的结果和预期结果是不是一致的,如果断言的内容会根据发给服务器参数变化而变化,就要把断言的内容也参数化;为了遍历所有的参数,我们接下来还要添加一个循环控制器,把下单接加入到这个循环控制器里面,并设定循环次数;最后,添加查看结果树查看测试结果。 |
- 对http协议怎么理解的?
参考答案:http协议是应用层的一个数据传输协议,由请求和响应构成,主要的请求方式有get和post两种,get请求的请求数据在请求头,post请求的请求数据在请求体;响应的数据也包含响应头和响应体,常见的http响应码有200,302,400,500等等。 |
- 接口测试用例怎么写?
参考答案:我们每个版本都会有四五个接口需求,有的是新增的接口,有的是原来的接口做了一些调整,我们会查看这些接口有哪些参数,每个参数有什么约束条件,加密方式是什么,正常和异常的响应信息有哪些,然后编写测试用例来覆盖这些需求,一个版本下来大概有五六十条接口测试用例。 |
- 接口有哪些参数?
参考答案:比方说:下单接口,会有token,产品ID,购买数量,收货人地址,收件人电话等等;注册接口,会有手机号,密码,验证码这些参数;我们项目的接口有五六十个,每个接口实现的功能不一样,参数是不一样的。 |
- 24接口的状态码有哪些
参考答案:接口不一样,返回的状态码也不一样,我们接口的状态码是由开发统一定义的,比如,我们xxx这个项目,修改昵称这个接口,成功修改的状态码是0,30001表示token无效,30002表示用户不存在,还有30003等一些其他的状态码,具体意思记不太清楚了。 |
- 接口是一个一个做,还是系统做?
参考答案:我们是将这个系统的所有接口,都放在Jmeter的一个线程组下一起执行。 |
26.接口测试遇到过什么问题,当时是怎么操作然后出现的问题,后来又是怎么分析处理的?
参考答案:就比如最近做的这个项目,添加新商品这个接口,当库存量的值为空,接口报错了,原因是开发没有设定当库存量为空时,自动给一个0的默认值,导致后台接收不到数据。 |
- 27.面:你支付功能,付款的接口是怎么测试的呢?
我:付款的接口一般是由开发直接调试的,像支付宝、微信这些第三方支付,开发会直接调试好。 |
- 28.面:哦,那你能说一下第三方支付接口的流程吗
--- <参考支付接口流程那张流程图> 我:首先用户下订单,网站后台就会生成一个支付请求发送到第三方支付平台;支付平台收到请求后会直接发送响应给用户,展示金额等,并且要求用户输入账号密码,用户输入信息直接发送到第三方平台;付款成功后第三方平台会返回支付结果给到网站后台和用户;后台收到付款成功信息后就会生成付款成功的订单信息发给用户;大概的流程就是这样。 |
- 29.Fiddler怎么抓手机app的包?
1、手机与fiddler所的电脑连接到同一网络; 2、在fiddler设置监听端口,并允许远程终端连接; 3、在手机上填写代理服务器的地址和端口。 |
- 30.为什么要做接口测试 / 接口测试的目的
1)尽早介入测试,早发现bug,降低修复成本 2)UI界面测试无法发现底层问题 |
- 31.没有接口文档,如何进行接口测试?
参考答案:可以通过fiddler抓包获取服务器地址,url,端口号等,然后在写入到Jmeter发送。 |
33、requests如何安装?
参考答案:先安装python,然后在cmd通过pip install requests安装即可
引用方式: import requests