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

网友投稿 761 2022-05-29

本文为霍格沃兹测试学院学员学习笔记。

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

1. 测试常见问题与流程篇

2. 测试工具篇

3. 计算机网络知识与数据库篇

4. Linux 与 Python 编程技能篇

5. 自动化测试(Selenium、Appium 和接口测试)与性能测试篇

6. 软素质篇(10 大灵魂拷问)与反问面试官篇

awk、sed、vim、iotop、dstat、cp、top、ifconfig、pwd、cd、ll、ls、cat、tail、grep、mv、rm、mkdir、df、du1

改变编码格式

vim test.sh

:set ff?// 显示dos的话

:set ff=unix:wq

grep 命令

-v 显示不被pattern匹配到的行

-i 忽略字符的大小写

-n 显示匹配的行号

-c 统计匹配的行数

-o 仅显示匹配到的字符串

-E 使用ERE,相当于egrep(可以识别更多的正则表达式规则)

根据用户指定的模式 pattern 对目标文本进行过滤,显示被模式匹配到的行;

grep [options] pattern [file]

常用参数:

sed 命令

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: 代表全局

-h 显示帮助

-n 仅显示script处理后的结果

-e 指定的脚本来处理输入的文本文件

-f 以指定的脚本文件来处理

流编辑器,用来处理一行数据。将一行数据存储在模式空间中->用sed命令处理->送入屏幕->清空空间。

常用参数:

常用动作:

awk 命令

ofs 输出域分隔符

ors 输出记录分隔符

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

rs 控制记录分隔符,换行标志

$0 整条记录

$1 第一条分隔后的记录

filename awk 浏览的文件名

begin 处理文本前要执行的操作

end 处理文本之后要执行的操作

fs 设置输入域分隔符,等价于命令行-F选项

nf 浏览记录的域的个数(列数)

nr 已读的记录数(行数)

把文件逐行的读入,以空格为默认分隔符将每行切片。把行作为输入,并赋值给$0->将行切段,从$1开始->对行匹配正则/执行动作->打印内容;

awk 'pattern + action' [filenames]

常用语法:

常用参数:

如果要监控日志,那么使用 tail -f | grep xxx 命令,过滤需要的字段;

如果在完整日志中查看内容,使用 cat xxx.log | grep xxxx | awk ‘{print $1}’ 等命令过滤自己需要的内容;

结合自身经验先从系统安装开始,如常用的 CentOS 和 Ubuntu 说起,系统安装主要是磁盘分区和磁盘阵列问题;

基础环境依赖,如 MySQL、Redis、Jenkins、Docker、项目中用到的其他依赖环境等;

维护方便主要从遇到的错误说起,如无法远程连接、服务器加固等;

实例方法:由对象调用;至少一个 self 参数;执行普通方法时,自动将调用该方法的对象赋值给 self;

类方法:由类调用;至少一个 cls 参数;执行类方法时,自动将调用该方法的类复制给 cls;

静态方法:由类调用;无默认参数;

tuple 是不可变对象,list 和 dict 都是可变对象,这里的不可变指的是指向地址不可变;

list 是有序的,dict 是无序的,不可存放有序集合;

dict 查找速度快,不管有多少个元素时间都一样,list 查找速度慢,需要有序查找;

dict 的 key 为不可变对象,且不可重复,list 则可以重复,存放任意对象;

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 里只有数组;

当对象之间互相引用的时候再删除的时候,可能会造成无法释放对象的情况,出现泄漏;

上面为个人了解,如有其它请补充;

直接得到最终结果的结果,就是同步调用。

不直接得到的最终的结果,就是异步调用。

同步与异步区别在于:调用者是否得到了想要的最终结果。

两个列表提取作为字典

dict(zip(list1, list2))1

字符串反转输出

str = '1234567890'print(str[::-1])l = list(str)l.reverse()print(''.join(l))123456

实现斐波那契数列

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 l123456789

找出驼峰数组的最大值

li = [1, 2, 10, 10, 2, 1]print([v for v in li if v == max(li)])12

水仙花数

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)12345678

完全数

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)12345678

幂的递归

def mi(a, n):     if n == 0:         return 1     else:         return a * mi(a, n - 1)12345

目录遍历

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 files123456789

Python Linux

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:华为云FusionInsight助力太保跨多版本升级业务0中断
下一篇:搭建服务器上的GIT并实现自动同步到站点目录(www)
相关文章