测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)

news2024/11/17 9:36:10

本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的、网络搜集(完善)、工作日常讨论等,分为以下十个部分,供大家参考。如有错误的地方,欢迎指正。有更多的面试题或面试中遇到的坑,也欢迎补充分享。希望大家都能找到满意的工作,共勉之!~

软件测试工程师面试题
  1. 测试常见问题与流程篇
  2. 测试工具篇
  3. 计算机网络知识与数据库篇
  4. Linux 与 Python 编程技能篇
  5. 自动化测试(Selenium、Appium 和接口测试)与性能测试篇
  6. 软素质篇(10 大灵魂拷问)与反问面试官篇

Linux 技能篇

  1. 工作中常用的 Linux 命令有哪些?
awk、sed、vim、iotop、dstat、cp、top、ifconfig、pwd、cd、ll、ls、cat、tail、grep、mv、rm、mkdir、df、du
  1. 什么命令可以帮助 Linux 执行 Windows 上传的脚本?
  • 改变编码格式
  • vim test.sh
  • :set ff?// 显示dos的话
  • :set ff=unix:wq
  1. 简述 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 第一条分隔后的记录
  1. 如何通命令定位 Linux 服务器下的日志?
  • 如果要监控日志,那么使用 tail -f | grep xxx 命令,过滤需要的字段;
  • 如果在完整日志中查看内容,使用 cat xxx.log | grep xxxx | awk '{print $1}' 等命令过滤自己需要的内容;
  1. 简述项目中的环境搭建和维护
  • 结合自身经验先从系统安装开始,如常用的 CentOS 和 Ubuntu 说起,系统安装主要是磁盘分区和磁盘阵列问题;
  • 基础环境依赖,如 MySQL、Redis、Jenkins、Docker、项目中用到的其他依赖环境等;
  • 维护方便主要从遇到的错误说起,如无法远程连接、服务器加固等;

Python 编程篇

  1. Python 中类方法,类实例方法,静态方法的区别
  • 实例方法:由对象调用;至少一个 self 参数;执行普通方法时,自动将调用该方法的对象赋值给 self;
  • 类方法:由类调用;至少一个 cls 参数;执行类方法时,自动将调用该方法的类复制给 cls;
  • 静态方法:由类调用;无默认参数;
  1. dict 和 tuple 及 list 的区别(这里列的是主要区别,面试足够)
  • tuple 是不可变对象,list 和 dict 都是可变对象,这里的不可变指的是指向地址不可变;
  • list 是有序的,dict 是无序的,不可存放有序集合;
  • dict 查找速度快,不管有多少个元素时间都一样,list 查找速度慢,需要有序查找;
  • dict 的 key 为不可变对象,且不可重复,list 则可以重复,存放任意对象;
  1. 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 里只有数组;
  1. Python 会不会出现内存泄漏,为什么?
  • 当对象之间互相引用的时候再删除的时候,可能会造成无法释放对象的情况,出现泄漏;
  • 上面为个人了解,如有其它请补充;
  1. Python 的同步和异步
  • 直接得到最终结果的结果,就是同步调用。
  • 不直接得到的最终的结果,就是异步调用。
  • 同步与异步区别在于:调用者是否得到了想要的最终结果。
  1. 常见手撕代码题
  • 两个列表提取作为字典
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

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1181041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

四川思维跳动商务信息咨询有限公司可靠吗?

随着抖音等短视频平台的兴起&#xff0c;越来越多的商家开始利用这些平台进行带货。四川思维跳动商务信息咨询有限公司也提供抖音带货服务&#xff0c;那么&#xff0c;他们的服务可靠吗&#xff1f;本文将为你揭开真相&#xff0c;让你安心选择&#xff01; 一、公司简介 四川…

分布式任务调度(04)--自研

1 背景 兼容技术团队自研的RPC框架&#xff0c;技术团队不需要修改代码&#xff0c;RPC注解方法可以托管在任务调度系统中&#xff0c;直接当做一个任务来执行。 研读XXL-JOB&#xff0c;同时从阿里云分布式任务调度 SchedulerX 吸取。 SchedulerX 1.0 架构图 Schedulerx-co…

MCU常见通信总线串讲(二)—— RS232和RS485

&#x1f64c;秋名山码民的主页 &#x1f602;oi退役选手&#xff0c;Java、大数据、单片机、IoT均有所涉猎&#xff0c;热爱技术&#xff0c;技术无罪 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; 获取源码&#xff0c;添加WX 目录 前言一…

Word文档中书签使用注意事项

在协同编辑文档时&#xff0c;书签被广泛应用在各种场景中&#xff0c;当我们在编辑时有时候会搞不懂我们的哪些操作会导致书签更换段落或是删除&#xff0c;比如同样的某些操作在修订场景下书签就不会消失&#xff0c;但非修订状态就会消失。在这篇文章中我们就介绍一下我们的…

数据中心的防雷接地

在数据中心建设中&#xff0c;防雷接地是非常重要的一项工作&#xff0c;能有效地保护数据中心设备和系统免受雷击的影响。下面是一些关于数据中心防雷接地的常见做法&#xff1a; 接地系统设计&#xff1a;在数据中心的设计阶段&#xff0c;应考虑到接地系统的布置和规划。为了…

Halcon如何使用SaperaLT库连接dalsa相机

halcon安装好的时候&#xff0c;没有带SaperaLT的采集库&#xff0c;需要额外在Halcon官网下载此库。 以下是halcon官网下载此库的链接。官网需要注册才可以下载。 https://www.mvtec.com/downloads/interfaces?tx_mvtecproduct_extensiondownloadlist%5Bfilter%5D%5B0%5Dma…

时空智友企业信息管理系统任意文件读取漏洞复现

简介 时空智友企业信息管理系统是一个用于企业流程管理和控制的软件系统。它旨在帮助企业实现流程的规范化、自动化和优化&#xff0c;从而提高工作效率、降低成本并提升管理水平。 时空智友企业信息管理系统存在任意文件读取漏洞&#xff0c;攻击者可以在未授权的情况下读取…

如何在word文档中批量插入二维码

合同系统中&#xff0c;一般流程是线上拟稿、审批、定稿&#xff0c;然后线下打印定稿的合同并且存档。当拿到一个纸质合同&#xff0c;需要去线上系统查询当时的合同拟制过程&#xff0c;那如何快速定位到这个文档&#xff0c;是一个问题。通用的做法是&#xff0c;将该文档的…

yolov5 学习体验

模型训练&#xff1a; train.py def parse_opt(knownFalse):parser argparse.ArgumentParser()parser.add_argument(--weights, typestr, defaultROOT / yolov5s.pt, helpinitial weights path)parser.add_argument(--cfg, typestr, default, helpmodel.yaml path)parser.ad…

FL Studio21中文升级版全能的音乐制作软件

对于唱作人来说&#xff0c;一款优秀、全能的音乐制作软件&#xff0c;能帮助他们在创作上获得更多的灵感、以及为歌曲带来更多的变化。 FL Cloud 音效库包含开放版权的Loop和采样&#xff0c;以及来自 FL Studio 著名用户的艺术家独家内容。更新后&#xff0c;现在还可以使用…

必看!玩转Salesforce沙盒的5个实用技巧

定期刷新沙盒对于尝试最新版本的功能&#xff0c;以及防止在生产组织的环境中缺乏测试而导致开发工作回滚至关重要。 为了确保沙盒设置在刷新后顺利进行&#xff0c;需要考虑几个因素。首先&#xff0c;确保有完善的文档化流程。文档应分为Conga、DocuSign、数据&#xff08;C…

基于ubuntu1604的ROS安装

不同版本的Ubuntu都有对应的ROS版本&#xff0c;不要强行安装不对应的版本&#xff0c;否则遇到问题会很难找到解决方法。此教程也只是基于Ubuntu1604和kinetic版本的ROS。 一、基本流程 以下命令仅记录执行顺序&#xff0c;不要无脑复制执行&#xff0c;重在理解 #基本更新…

JavaScript 进阶问题列表,巩固自己的知识。

不定时更新 JavaScript 进阶问题列表 从基础到进阶&#xff0c;测试你有多了解 JavaScript&#xff0c;刷新你的知识&#xff0c;或者帮助你的 coding 面试&#xff01; &#x1f4aa; &#x1f680; 答案❤️ 1. 输出是什么&#xff1f; function sayHi() {console.log(na…

【Git】Git 学习笔记_操作本地仓库

1. 安装与初始化配置 1.1 安装 下载地址 在文件夹里右键点击 git bash here 即可打开命令行面板。 git -v // 查看版本1.2 配置 git config --global user.name "heo" git config --global user.email xxxgmail.com git config --global credential.helper stor…

关于Alibaba Cloud Toolkit 下载配置以及后端自动部署

idea中File-Settings-Plugins 搜索Alibaba Cloud Toolkit点击下载&#xff0c;下载完成重启 1、点击 Tools-Alibaba Cloud-Deploy to Host 部署到主机 2、配置服务器ip、jar包启动命令、服务器jar存放位置 3、设置服务器ip用户名密码&#xff0c;点击测试连接情况 4、配置脚本…

基于SSM的酒店客房管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

读取xlsx文件存入MongoDB数据库中

要将xlsx文件存入MongoDB数据库&#xff0c;您需要执行以下步骤&#xff1a; 步骤1&#xff1a;安装必要的库 您需要安装pymongo和openpyxl库。您可以使用以下命令安装&#xff1a; pip install pymongo openpyxl 步骤2&#xff1a;创建一个MongoDB数据库 您需要创建一个Mon…

Etcd 常用命令与备份恢复

1. etcd简介 官方网站&#xff1a;etcd.io 官方文档&#xff1a;etcd.io/docs/v3.5/op-guide/maintenance 官方硬件推荐&#xff1a;etcd.io/docs/v3.5/op-guide/hardware github地址&#xff1a;github.com/etcd-io/etcd etcd是CoreOS团队于2013年6月发起的开源项目&#xf…

常用评价指标及方法(以NILM及SV为例)

1. NILM的评价指标 主要有 accuracy,precision,recal, F1-score, F1-micro, F1-macro 首先需要了解一下几个概念&#xff0c;TP (true positive), FP (false positive), TN (true negitive), FN (false negitive)。 TP:true positive。预测是正确的正样本FP:false positive。…

Linux应用开发基础知识——Makefile 的使用(二)

前言&#xff1a; 在 Linux 中使用 make 命令来编译程序&#xff0c;特别是大程序&#xff1b;而 make 命令所执 行的动作依赖于 Makefile 文件。最简单的 Makefile 文件&#xff1a; hello: hello.c 、gcc -o hello hello.c 、clean:、 rm -f hello 将上述 4 行存为 Makefile …