测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)
本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的、网络搜集(完善)、工作日常讨论等,分为以下十个部分,供大家参考。如有错误的地方,欢迎指正。有更多的面试题或面试中遇到的坑,也欢迎补充分享。希望大家都能找到满意的工作,共勉之!~
软件测试工程师面试题
- 测试常见问题与流程篇
- 测试工具篇
- 计算机网络知识与数据库篇
- Linux 与 Python 编程技能篇
- 自动化测试(Selenium、Appium 和接口测试)与性能测试篇
- 软素质篇(10 大灵魂拷问)与反问面试官篇
Linux 技能篇
- 工作中常用的 Linux 命令有哪些?
awk、sed、vim、iotop、dstat、cp、top、ifconfig、pwd、cd、ll、ls、cat、tail、grep、mv、rm、mkdir、df、du
- 什么命令可以帮助 Linux 执行 Windows 上传的脚本?
- 改变编码格式
- vim test.sh
- :set ff?// 显示dos的话
- :set ff=unix:wq
- 简述 Linux 三剑客
-
grep 命令
- 根据用户指定的模式 pattern 对目标文本进行过滤,显示被模式匹配到的行;
grep [options] pattern [file]- 常用参数:
- -v 显示不被pattern匹配到的行
- -i 忽略字符的大小写
- -n 显示匹配的行号
- -c 统计匹配的行数
- -o 仅显示匹配到的字符串
- -E 使用ERE,相当于egrep(可以识别更多的正则表达式规则)
-
sed 命令
- 流编辑器,用来处理一行数据。将一行数据存储在模式空间中->用sed命令处理->送入屏幕->清空空间。
- 常用参数:
- -h 显示帮助
- -n 仅显示script处理后的结果
- -e 指定的脚本来处理输入的文本文件
- -f 以指定的脚本文件来处理
- 常用动作:
- a: 新增 sed -e '4 a newline'
- c: 取代 sed -e '2,5c No 2-5 number'
- d: 删除 sed -e '2,5d'
- i: 插入 sed -ed '2i newline'
- p: 打印 sed -n '/root/p'
- s: 取代 sed -e 's/old/new/g'
- g: 代表全局
-
awk 命令
- 把文件逐行的读入,以空格为默认分隔符将每行切片。把行作为输入,并赋值给
$0->将行切段,从$1开始->对行匹配正则/执行动作->打印内容; awk 'pattern + action' [filenames]- 常用语法:
- filename awk 浏览的文件名
- begin 处理文本前要执行的操作
- end 处理文本之后要执行的操作
- fs 设置输入域分隔符,等价于命令行-F选项
- nf 浏览记录的域的个数(列数)
- nr 已读的记录数(行数)
- 常用参数:
- ofs 输出域分隔符
- ors 输出记录分隔符
- rs 控制记录分隔符,换行标志
$0整条记录$1第一条分隔后的记录
- 把文件逐行的读入,以空格为默认分隔符将每行切片。把行作为输入,并赋值给
- 如何通命令定位 Linux 服务器下的日志?
- 如果要监控日志,那么使用
tail -f | grep xxx命令,过滤需要的字段; - 如果在完整日志中查看内容,使用
cat xxx.log | grep xxxx | awk '{print $1}'等命令过滤自己需要的内容;
- 简述项目中的环境搭建和维护
- 结合自身经验先从系统安装开始,如常用的 CentOS 和 Ubuntu 说起,系统安装主要是磁盘分区和磁盘阵列问题;
- 基础环境依赖,如 MySQL、Redis、Jenkins、Docker、项目中用到的其他依赖环境等;
- 维护方便主要从遇到的错误说起,如无法远程连接、服务器加固等;
Python 编程篇
- Python 中类方法,类实例方法,静态方法的区别
- 实例方法:由对象调用;至少一个 self 参数;执行普通方法时,自动将调用该方法的对象赋值给 self;
- 类方法:由类调用;至少一个 cls 参数;执行类方法时,自动将调用该方法的类复制给 cls;
- 静态方法:由类调用;无默认参数;
- dict 和 tuple 及 list 的区别(这里列的是主要区别,面试足够)
- tuple 是不可变对象,list 和 dict 都是可变对象,这里的不可变指的是指向地址不可变;
- list 是有序的,dict 是无序的,不可存放有序集合;
- dict 查找速度快,不管有多少个元素时间都一样,list 查找速度慢,需要有序查找;
- dict 的 key 为不可变对象,且不可重复,list 则可以重复,存放任意对象;
- JSON 和 dict 的区别
- JSON 是一种数据格式,纯字符串。dict 是一种完整的数据结构;
- dict 是一个完整的数据结构,是对 Hash Table 这一数据结构的一种实现,是一套从存储到提取都封装好了的方案。它使用内置的哈希函数来规划 key 对应 value 的存储位置,从而获得O(1)的数据读取速度;
- JSON 的 key 只能是字符串,Python 的 dict 可以是任何可 hash 对象(不可变对象);
- JSON 的 key 可以是有序、可重复的;dict 的 key 不可重复,且无序;
- JSON 任意 key 存在默认值 undefined,dict 默认没有默认值;
- JSON 访问方式可以是[],也可以是.,遍历方式分 in、of;dict 的 value 仅可以下标访问;
- dict 可以嵌套 tuple,JSON 里只有数组;
- Python 会不会出现内存泄漏,为什么?
- 当对象之间互相引用的时候再删除的时候,可能会造成无法释放对象的情况,出现泄漏;
- 上面为个人了解,如有其它请补充;
- Python 的同步和异步
- 直接得到最终结果的结果,就是同步调用。
- 不直接得到的最终的结果,就是异步调用。
- 同步与异步区别在于:调用者是否得到了想要的最终结果。
- 常见手撕代码题
- 两个列表提取作为字典
dict(zip(list1, list2))
- 字符串反转输出
str = '1234567890'print(str[::-1])l = list(str)l.reverse()print(''.join(l))
- 实现斐波那契数列
def Fibonacci(loop): if loop == 0: return '无效参数' elif loop == 1: return 0 l = [0, 1] for i in range(2, loop): l.append(l[i - 1] + l[i - 2]) return l
- 找出驼峰数组的最大值
li = [1, 2, 10, 10, 2, 1]print([v for v in li if v == max(li)])
- 水仙花数
sxh = []for i in range(100, 1000): s = 0 for j in str(i): s += int(j)**3 if i == int(j)**3: sxh.append(i)print(sxh)
- 完全数
a = []for i in range(1, 1000): s = 0 for j in range(1, i): if i % j == 0 and j < i: s += j if s == i: a.append(i)
- 幂的递归
def mi(a, n): if n == 0: return 1 else: return a * mi(a, n - 1)
- 目录遍历
import osdef get_file(path, rule=''): files = [] for fpath, dirs, fs in os.walk(path): for f in fs: if os.path.join(fpath, f).endswith(rule): files.append(f) return files
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:
测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)
本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的、网络搜集(完善)、工作日常讨论等,分为以下十个部分,供大家参考。如有错误的地方,欢迎指正。有更多的面试题或面试中遇到的…...
pytorch中的矩阵乘法
1. 运算符介绍 关于运算,*运算,torch.mul(), torch.mm(), torch.mv(), tensor.t() 和 *代表矩阵的两种相乘方式: 表示常规的数学上定义的矩阵相乘; *表示两个矩阵对应位置处的两个元素相乘。 1.1 矩阵点乘 *和torch.mul()等同…...
Java--Stream流详解
Stream是Java 8 API添加的一个新的抽象,称为流Stream,以一种声明性方式处理数据集合(侧重对于源数据计算能力的封装,并且支持序列与并行两种操作方式) Stream流是从支持数据处理操作的源生成的元素序列,源可…...
[PHP]ShopXO企业级B2C免费开源商城系统 v2.3.1
ShopXO 企业级B2C免费开源电商系统! 求实进取、创新专注、自主研发、国内领先企业级B2C电商系统解决方案。 遵循Apache2开源协议发布,无需授权、可商用、可二次开发、满足99%的电商运营需求。 PCH5、支付宝小程序、微信小程序、百度小程序、头条&抖音…...
Python基础入门系列详解20篇
Python基础入门(1)----Python简介 Python基础入门(2)----安装Python环境(Windows、MacOS、CentOS、Ubuntu) Python基础入门(3)----Python基础语法:解释器、标识符、关键…...
P02项目(学习)
★ P02项目 项目描述:安全操作项目旨在提高医疗设备的安全性,特别是在医生离开操作屏幕时,以减少非授权人员的误操作风险。为实现这一目标,我们采用多层次的保护措施,包括人脸识别、姿势检测以及二维码识别等技术。这些…...
pandas 笔记:get_dummies分类变量one-hot化
1 函数介绍 pandas.get_dummies 是 pandas 库中的一个函数,它用于将分类变量转换为哑变量/指示变量。所谓的哑变量,就是将分类变量的每一个不同的值转换为一个新的0/1变量。在输出的DataFrame中,每一列都以该值的名称命名 pandas.get_dummi…...
PTE作文练习(一)
目录 65分备考建议 WE模版 范文 Supporting ideas: SWT 65分备考建议 RA重在多听标准的正确的示范,RS重在抓大放小,WFD重在整理错题,以及反反复复的车轮战,FIBRW重在“以对代记” 就是直接看答案,节约时间&#…...
如何做到一套FPGA工程无缝兼容两款不同的板卡?
试想这样一种场景,有两款不同的FPGA板卡,它们的功能代码90%都是一样的,但是两个板卡的管脚分配完全不同,一般情况下,我们需要设计两个工程,两套代码,之后还需要一直维护两个版本。 那么有没有一种自动化的方式,实现一个工程,编译出一个程序文件,下载到这两个不同的板…...
VSCode修改主题为Eclipse 绿色护眼模式
前言 从参加开发以来,一直使用eclipse进行开发,基本官方出新版本,我都会更新。后来出来很多其他的IDE工具,我也尝试了,但他们的主题都把我劝退了,黑色主题是谁想出来?😂 字体小的时…...
conan和cmake编译器版本不匹配问题解决
conan和cmake编译器版本不匹配问题解决 1 问题现象2 解决方法2.1 在CMakeLists.txt禁止编译器检查2.1.1 修改方式 2.2 探查问题出现的根本原因2.2.1 安装升级gcc2.2.2 安装升级g 注 执行环境:ubuntu 1 问题现象 conan要求的编译器版本和cmake检测到的当前的编译器…...
float单精度浮点数如何在计算机中存储
文章目录 1 float型数据组成2 实际举例3 代码测试4 写在最后 1 float型数据组成 按照IEEE浮点标准存储浮点数时,一个float型的值由1个符号位(最左边的位或最高有效位)、8个指数位以及23个小数位依次组成: 符号位为0时表示正数,为1…...
机器视觉在虚拟现实与增强现实中的作用
机器视觉在虚拟现实(VR)和增强现实(AR)中发挥着至关重要的作用。这些技术的核心是计算机视觉领域,重点是让计算机具有“看到”和理解周围世界的能力。 在虚拟现实中,计算机视觉用于创建和处理用户所见的虚…...
红黑数原理及存在原因
我红黑树那么牛,你们为什么不用?_哔哩哔哩_bilibili 面试时经常会被问到红黑树,它到底有什么优点呢? 对于查找数据,数组二分查询速度最快,时间复杂度为O(logN)。但是如果增加和删除数据,数组就…...
Ansible入门—安装部署及各个模块应用案例(超详细)
目录 前言 一、环境概况 修改主机名(可选项) 二、安装部署 1.安装epel扩展源 2.安装Ansible 3.修改Ansible的hosts文件 4.生成密钥 三、Ansible模块使用介绍 Command模块 Shell模块 User模块 Copy模块 File模块 Hostname模块 Yum模块 Se…...
Spring Boot 3系列之-启动类详解
Spring Boot是一个功能强大、灵活且易于使用的框架,它极大地简化了Spring应用程序的开发和部署流程,使得开发人员能够更专注于业务逻辑的实现。在我们的Spring Boot 3系列之一(初始化项目)文章中,我们使用了Spring官方…...
muduo源码剖析之Timer定时器
简介 Timer 类是 muduo 网络库中的一个定时器类,用于在指定的时间间隔后执行某个任务。 Timer 类提供了一系列的方法来创建、启动、停止和删除定时器,以及设置定时器的时间间隔和回调函数等。 在 muduo 网络库中,Timer 类被广泛应用于各种…...
CocosCreator:背景滚动 、背景循环滚动
.CocosCretor版本3.2.1 编辑器VScode 制作游戏背景的循环滚动 import { _decorator, Component, Node } from cc; const { ccclass, property } _decorator;ccclass(MoveingSceneBg) export class MoveingSceneBg extends Component {property(Node)bg01: Node null!;proper…...
中远麒麟堡垒机SQL注入漏洞复现
简介 中远麒麟堡垒机用于运维管理的认证、授权、审计等监控管理,在该产品admin.php处存在SQL 注入漏洞。 漏洞复现 FOFA语法: body"url\"admin.php?controlleradmin_index&actionget_user_login_fristauth&username" 或者 c…...
ActiveMq学习⑨__基于zookeeper和LevelDB搭建ActiveMQ集群
引入消息中间件后如何保证其高可用? 基于zookeeper和LevelDB搭建ActiveMQ集群。集群仅提供主备方式的高可用集群功能,避免单点故障。 http://activemq.apache.org/masterslave LevelDB,5.6版本之后推出了LecelDB的持久化引擎,它使…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...
快速排序算法改进:随机快排-荷兰国旗划分详解
随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...
基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)
注:文章末尾网盘链接中自取成品使用演示视频、项目源码、项目文档 所用硬件:STM32F103C8T6、无源蜂鸣器、44矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口 stm32f103c8t6 面包板 …...
Springboot 高校报修与互助平台小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,高校报修与互助平台小程序被用户普遍使用,为…...
从0开始一篇文章学习Nginx
Nginx服务 HTTP介绍 ## HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 ## HTTP工作在 TCP/IP协议体系中的TCP协议上&#…...
【RabbitMQ】- Channel和Delivery Tag机制
在 RabbitMQ 的消费者代码中,Channel 和 tag 参数的存在是为了实现消息确认机制(Acknowledgment)和精细化的消息控制。 Channel 参数 作用 Channel 是 AMQP 协议的核心操作接口,通过它可以直接与 RabbitMQ 交互: 手…...
【图片转AR场景】Tripo + Blender + Kivicube 实现图片转 AR 建模
总览 1.将 2D 图片转为立体建模 2. 3. 一、将 2D 图片转为立体建模 1.工具介绍 Tripo 网站 2.找图片 找的图片必须是看起来能够让 AI 有能力识别和推理的,因为现在的AI虽然可以补全但是能力还没有像人的想象力那么丰富。 比如上面这张图片,看起来虽…...

