接口测试相关

接口测试API的面试点

什么是接口测试

接口测试(即API),是应用程序编程接口;
原理:通过测试程序或工具,模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理,然后再把应答报文发送给客户端

接口发送请求的协议是?(前后台之间的通讯协议)

http(测试/开发环境)、HTTPS(预生产/生产环境)

接口测试要关注什么内容?(如何判断接口测试是通过的?)

  1. 发送给服务器的请求数据是否正确
  2. 服务器返回给客户端的信息是否和预期结果一致;
  3. 进入数据库,检查接口是否实现的相应的功能;
  4. 接口的响应时间是否符合需求

接口测试在什么时候做?

前后端联调

为什么要做接口测试?(接口测试的目的?)

  1. 可以尽早发现bug降低修复成本
  2. 可以发现UI界面无法发现的底层(功能)问题

接口测试类型有哪些

接口类型通常分两种:

  1. 外部接口:系统与系统之间的接口
  2. 内部接口:前端与后端之间的接口

一般做的是怎样的接口类型?

内部的,前端与后端之间的接口

做接口测试,需要有哪些数据才能做?

必要:接口文档(服务器ip、端口、协议、url路径(地址)、请求的参数、请求的方式)
非必要:请求参数的约束条件、响应的数据(正常,异常)、请求参数和响应参数的数据说明

请求方式有哪些:

get、post、delete、put,最常用的就是get和post两种

怎么做接口测试?

前置条件:需要配置JDK环境

  1. 拿到接口文档,
  2. 编写测试用例;
    ①确定请求方式和返回数据格式
    ②根据请求参数划分出正常与异常
    ③分析返回报文(返回数据报文就是预期结果)
  3. 确定使用工具:Jmeter,Postman
  4. 执行测试
  5. 提交bug
  6. 测试报告

接口出错了怎么办?

  1. 先检查一下是否是自己的操作错误(请求参数,请求方式)
  2. ping一下网络,看网络是否通畅
  3. 查看一下服务器是否启动
  4. 都没问题,就提交问题单给开发

接口测试bug类型有哪些?

  1. 实际的响应报文和预期不一致(功能实现错误)
  2. data字段内返回的字段缺失
  3. data字段内返回的数据错误

查看日志或者说定位问题

查找日志中存在报错或异常的日志信息:可通过命令grep 查找exception 或error关键字进行搜索

工作中什么时候用到抓包

  1. 抓包,判断前后端问题
  2. 做安全测试,检查传输数据是否加密;拦截请求,篡改数据----下单、支付充值等
  3. 模拟弱网
  4. 统计单个功能的响应器

如何判断前后端问题

判断前后端问题

Jmeter

如何搭建Jmeter环境

  1. 因为Jmeter的开发语言是Java,所以要安装JDK(Java的编译环境)
  2. JDK安装完成后,配置环境变量(JAVA_HOME、CLASSPATH、path)
  3. 下载Jmeter并解压,在Jmeter安装目录下的bin目录找到jmeter.bat启动即可

Jmeter、JDK版本分别是多少?

Jmeter 4.0
JDK 1.8

jmeter的操作

  • jemter线程组:

    • 线程组名:一般改成对应的项目功能模块名称或项目名称
    • 线程数:即用户数量,一个用户=一个线程(做性能测试是需要用到)
    • Ramp-Up Period(in seconds):n秒生成m个线程数
    • 循环次数:用户的循环次数,填写空时默认勾选永远
    • 调度器:勾选后,持续时间不能为空(否则会报错,导致整个接口运行不了)
  • HTTP请求:
    名称一般填写被测接口功能名称,
    HTTP请求默认协议为HTTP协议(可写可不写);默认端口:80(可写可不写)

  • json格式:以{}或[]开头括起来的数据,一般都是大括号{}
    里面的参数与值格式(“参数”:值),多个参数用逗号隔开(“参数”:值,“参数”:值)

  • json格式的请求数据在Body data下,还有一定要加上http信息头管理器

  • 接口响应数据返回格式?
    json格式

  • PUT请求发送的数据要写在body data下
    参数=值&参数=值

  • 聚合报告
    在这里插入图片描述

Jmeter的面试点

什么是断言?—>就是预期结果

多个断言是默认连接为且(and)

断言有哪些:

响应断言,http状态码,json响应断言,bean shell断言

什么是参数化?

模拟多用户进行操作;

参数化的作用?

模拟用户正常和异常的操作场景

如何自动关联?

  1. 通过后置处理器下的正则表达式提取器去提取,然后使用${id}去使用
  2. json提取器
  3. 后置处理器的beanshell进行跨线程关联

加密接口怎么测试?

  1. 通过MD5在线加密,把加密后的密文复制到对应的请求值
  2. 通过函数助手MD5进行加密
  3. 通过beanshell编写Java代码进行加密

jmeter如何防止内存溢出(OOM:out ofmemory)

  1. 找到jmeter.bat,右键–用文本打开
  2. 查找set heap修改初始内存和最大内存,然后保存
    (-Xms是初始内存,-Xmx是最大占用内存)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值