软件测试面试问题汇总

1.一个url请求的全过程

  • 总体来说分为以下六个步骤:
  • 1、DNS解析
  • 2、TCP连接
  • 3、发送HTTP请求
  • 4、服务器处理请求并返回HTTP报文
  • 5、浏览器解析渲染页面
  • 6、连接结束

2.tcp的三次握手和四次挥手

参考:TCP协议 “3次握手,4次挥手” 详细解释_echo-CSDN博客

3.中间件测试

4.微服务测试

5.python怎么操作数据库

  •  1.首先安装pymysql     
  • 2.导入库   import pymysql
  • 3.建立连接 conn = pymusql.connect(host=host,user=user,password=password,port=port)
  • 4.建立游标  curs=conn.cursor()
  • 5.发起请求 curs.execute(sql,args)
  • 6.得到结果  curs.fetchone()  或者curs.fetchall()
  • 7.关闭游标 curs.close()
  • 8.连接   conn.close()

6.python 切片

object[start_index:end_index:step]

7.python中对列表进行增删改查

参考:python中列表的常用操作增删改查 - FANDX - 博客园

8.判断bug前端还是后端 :测试人员如何判断是前端的bug还是后端的bug?

  • 通常可以利用抓包工具来进行分析。可以从三个方面进行分析:请求接口,传参,响应。
  • 1. 请求接口url是否正确,如果请求的接口url错误,为前端的bug
  • 2. 传参是否正确。如果传参不正确,为前端的bug
  • 3. 请求接口url和传参都正确,查看响应是否正确,如果响应内容不正确,为后端bug
  • 4. 也可以在浏览器控制台输入js代码调试进行分析

如果定位为后端的bug,可以进一步通过以下方法精确定位是哪里出bug:

  • 1. 查看报错日志,通过日志分析问题点
  • 2. 查看数据库确认数据的正确性
  • 3. 查看缓存是否正确

9.get和post的区别

  • 1、请求参数位置不同:
  • get,通过拼接url进行传递参数;
  • post,通过body体传输参数
  • 2、缓存性:
  • get请求是可以缓存的
  • post请求不可以缓存
  • 3、后退页面的反应
  • get请求页面后退时,不产生影响
  • post请求页面后退时,会重新提交请求
  • 4、传输数据的大小
  • get一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大)
  • post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。
  • 5、安全性
  • 这个也是最不好分析的,原则上post肯定要比get安全,毕竟传输参数时url不可见,但也挡不住部分人闲的没事在那抓包玩。安全性个人觉得是没多大区别的,防君子不防小人就是这个道理。对传递的参数进行加密,其实都一样。

10.http和https的区别

  • 1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
  • 2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  • 3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  • 4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

11.https用到什么证书

      https=http+ssl

      SSL证书(SSL Certificates)是HTTP明文协议升级HTTPS加密协议必备的数字证书

12.任务重,时间紧的时候怎么分配测试任务

      时间紧,任务重,该如何保证测试质量? - 软件性能测试 - 松勤网 - 松勤软件测试-软件测试在线教育领跑者-国内最专业的软件测试学习平台

13.app用户体验测试

  •     1).横竖屏测试
  •     2).兼容
  •     3).弱点弱网测试
  •     4).稳定性
  •     5).响应时间
  •     6).安装包大小
  •     7).用户习惯
  •     8).耗电、流量
  •     9).可操作控件的幂等测试。当用户快速点击APP中的按钮等可操作控件时,会出现什么效果?
  •     10).用户引导
  •     11).友好提示
  •     12).设计风格。和系统风格一致,本身风格一致

14.delete,drop,truncate区别

  • 1、delete 和 truncate 仅仅删除表数据,drop 连表数据和表结构一起删除
  • 2、delete 是 DML 语句,操作完以后如果没有不想提交事务还可以回滚,truncate 和 drop 是 DDL 语句,操作完马上生效,不能回滚,
  • 3、执行的速度上,drop>truncate>delete

15.数据库约束

  •        1、主键约束(Primay Key Coustraint) 唯一性,非空性
  •   2、唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个
  •   3、检查约束 (Check Counstraint)对该列数据的范围、格式的限制(如:年龄、性别等)
  •   4、默认约束 (Default Counstraint)该数据的默认值
  •   5、外键约束 (Foreign Key Counstraint)需要建立两表间的关系并引用主表的列

16.python for..in..循环和while循环的场景

    注意:python 无do-while循环

  • for..in..循环:知道循环执行的次数
  • while循环:不知道循环执行的次数

17.cookie,session和token的区别

  • 1)cookie数据存放在客户的浏览器上,session数据放在服务器上。而token是接口测试时的鉴权码,一般情况下登陆后才可以获取到token,然后在每次请求接口时需要带上token参数。
  • 2)cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session,session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用cookie
  • 3)可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie

18.app端和web端测试区别

     安装、兼容、性能

19.元组和列表的异同

  • 相同点:都是有序的;都是异构的,能够包含不同类型的对象,都支持切片和索引
  • 不同点:声明方式不同,元组使用(),列表使用[];元组是不可变的,列表是可变的

20.python常用的数据结构

    数字、字符串、列表、元组、集合、字典

21.android和iOS的测试区别

  • 1 . Android长按home键呼出应用列表和切换应用,然后右滑则终止应用;
  • 2. 多分辨率测试,Android端20多种,ios较少;
  • 3. 手机操作系统,Android较多,ios较少且不能降级,只能单向升级;新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退(Crash);
  • 4.  操作习惯:Android,Back键是否被重写,测试点击Back键后的反馈是否正确;应用数据从内存移动到SD卡后能否正常运行等;
  • 5. push测试:Android推送可以应用绕过系统限制;IOS只能根据系统配置来推送。
  • 6.  安装卸载测试:Android的下载和安装的平台和工具和渠道比较多,ios主要有app store,iTunes和testflight下载;
  • 7.  升级测试:可以被升级的必要条件:新旧版本具有相同的签名;新旧版本具有相同的包名;有一个标示符区分新旧版本(如版本号),对于Android若有内置的应用需检查升级之后内置文件是否匹配(如内置的输入法)

22 .mq

    生产者产生消息并把消息放入队列,然后由消费者去处理。消费者可以到指定队列拉取消息,或者订阅相应的队列,由MQ服务端给其推送消息。

    作用:消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构

    主要的MQ产品包括:RabbitMQActiveMQ、RocketMQ、ZeroMQ、Kafka、IBM WebSphere 等。

23.拆箱装箱
    装箱就是  自动将基本数据类型转换为包装器类型;拆箱就是  自动将包装器类型转换为基本数据类型。
24.深拷贝浅拷贝
    浅拷贝---能复制变量,如果对象内还有对象,则只能复制对象的地址
    深拷贝---能复制变量,也能复制当前对象的 内部对象

25.数据库除了增删改查还会啥
    安全性能,数据安全,数据备份,数据还原,数据采集,数据挖掘,备份恢复、数据索引、访问权限

26.状态码:

  • 1xx通知信息
  • 2xx成功  200 请求成功
  • 3xx重定向   302 重定向
  • 4xx客户端错误  400 错误请求 ,401未授权,403禁止,404未找到,405方法未允许
  • 5xx服务端错误 500内部服务器错误,502网关错误,503服务无法获得,504网关超时

27.在linux中如何解压

     在 Linux 中通常比较常用的是 tar 命令,zip 和 rar 命令则是 Windows 中比较常用

     1.tar命令

# 压缩文件 file1 和目录 dir2 到 test.tar.gz
tar -zcvf test.tar.gz file1 dir2
# 解压 test.tar.gz(将 c 换成 x 即可)
tar -zxvf test.tar.gz
# 列出压缩文件的内容
tar -ztvf test.tar.gz
#解压到当前文件夹
tar zxvf  文件名.tgz -C ./     比如我的是:tar zxvf simple-examples.tgz -C ./
#解压到指定文件夹下
tar  zxvf  文件名.tgz  -C /指定路径

     2. rar 命令

# 压缩文件

rar a -r test.rar file

# 解压文件

unrar x test.rar

     3.zip命令

# 压缩文件
zip -r test.zip file
# 解压文件
unzip test.zip

28.常用的Linux命令

  • ls          显示文件或目录

              -l           列出文件详细信息l(list)

              -a          列出当前目录下所有文件及目录,包括隐藏的a(all)

  • mkdir         创建目录

             -p           创建目录,若无父目录,则创建p(parent)

  • cd               切换目录
  • touch          创建空文件
  • echo            创建带有内容的文件。
  • cat              查看文件内容
  • cp                拷贝
  • mv               移动或重命名
  • rm               删除文件

            -r            递归删除,可删除子目录及文件

            -f            强制删除

  • find              在文件系统中搜索某文件
  • wc                统计文本中行数、字数、字符数
  • grep             在文本文件中查找某个字符串
  • rmdir           删除空目录
  • tree             树形结构显示目录,需要安装tree包
  • pwd              显示当前目录
  • ln                  创建链接文件
  • more、less  分页显示文本文件内容
  • head、tail    显示文件头、尾内容
  • vi        编辑
  • :wq   保存并退出编辑

28.网络的七层协议

   物理层,数据层,网络层,传输层(tcp协议),会话层,表现层,应用层(http协议)

29.selenium框架测层级目录

30.request+pytest框架的层级目录

31.测试前应该准备什么?

32.非功能案例

另参考:2021非常全的接口测试面试题及参考答案 - 51Testing软件测试网

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值