1--------------------------测试基础面试题
问:测试项目具体的工作包含哪些
答:搭建测试环境;写测试计划;撰写测试用例;执行测试用例并提交 BUG 表单;跟踪 bug 修改情况;执行自动化测试,编写脚本,执行、分析、报告;进行性能测试、压力测试即其他测试,执行、分析、调优、报告

2--------------------------语言类面试题(python)
问:python 的反射是什么,怎么应用
答:凡是是需要执行变量对象里的某个方法,或需要调用对象中的某个变量,但是由于种种原因我们无法知道这个方法或者变量是否存在,这是需要一个特殊的方法或机制要访问和操作这个未知的方法或变量,这种机制就叫做反射
应用:反射实现了 4 个函数,分别是 hasattr()---判断对象中是否有这个方法/变量;getattr()---获取对象中的方法/变量的内存地址;setattr()---为对象添加变量/方法;delattr()---删除对象中的变量(不能删除方法)

>>> class Test():
    name = 'xiaohua'
    def run(self):
        return 'helloworld'
>>> t = Test()
>>> hasattr(t,'name')
True
>>> hasattr(t,'run')
True
>>> 
>>> getattr(t, "name") #获取name属性,存在就打印出来。
'xiaohua'
>>> getattr(t, "run")  #获取run方法,存在就打印出方法的内存地址。
<bound method test.run of <__main__.test instance at 0x0269C878>>
>>> getattr(t, "run")()  #获取run方法,后面加括号可以将这个方法运行。
'HelloWord'
>>> getattr(t, "age")  #获取一个不存在的属性。
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: test instance has no attribute 'age'
>>> getattr(t, "age","18")  #若属性不存在,返回一个默认值。
'18'
>>>
>>> hasattr(t, "age")   #判断属性是否存在
 False
>>> setattr(t, "age", "18")   #为属相赋值,并没有返回值
>>> hasattr(t, "age")    #属性存在了
True
>>>

3--------------------------操作系统类面试题(linux)
问:linux 查看进程
答:主要通过 ps 命令来查看进程
ps a:显示现行终端机下的所有程序,包括其他用户的程序
ps -A:显示所有程序
ps c:列出程序时,显示每个程序真正的指令名称,而不包含路径、参数或常驻服务的标示
ps -e:参数效果和'A'参数相同
ps -N:显示所有的程序,除了执行 ps 指令终端机下的传续之外
ps u:以用户为主的格式来显示程序状况
ps s:采用程序信号的格式显示程序状况
ps x:显示所有程序,不以终端机来区分
ps -t<终端机号>:指定终端机编号,并列出属于该终端机的程序的状况
最常用的方法是 ps aux
4--------------------------计算机网络类面试题
问:http 协议,请求报文结构
答:http(hyperText transport protocol)超文本传输协议的缩写,用于传送 www 方式的数据
http 协议请求报文主要由请求行、请求头和请求正文三部分组成:
请求行:包含请求方法(get、post、delete、put);请求对应的 URL 地址;协议名称即版本号
请求头:是 http 的报文头,包含若干个属性,格式为属性名:属性值,如 Host:接受请求的服务器地址,可以是 IP 或者是域名;User-Agent:发送请求的应用名称;Connection:指定与连接相关的属性,例如(Keep_Alive,长连接);Accept-Charset:通知服务器端可以发送的编码格式;Accept-Encoding:通知服务器端可以发送的数据压缩格式;Accept-Language:通知服务器端可以发送的语言
请求体:是报文体,通过 param1= value 的键值对形式编码成一个格式话串,它承载多个请求参数的数据
5--------------------------数据库类面试题(sql,mysql)
问:数据库 mysql 中,char 和 vchar 的区别
答:char(n)类型是定长的类型,即当第一的是 char(10),输入的是 “abc"这三个字符时,他们栈的空间一样是 10 个字节,包括 7 个空字节。当输入的字符长度超过指定的数时,char 会截取超出的字符。而且,当存储 char 值时,mysql 时自动删除输入字符串末尾的空格。char 是适合存储很短的、一般固定长度的字符串。例如,char 非常适合存储密码的 MD5 值,因为这是一个定长值,对于非常短的列,char 比 varchar 在存储空间上也更有效率。取数据的时候,char 类型的要用 trim() 去掉多余的空格,而 varchar 是不需要
varchar(n) 类型是用于存储可变长的,长度为 n 个字节的可变长度且非 unicode 的字符数据。n 必须是介于 1 和 8000 之间的数值,存储大小为输入数据的字节实际长度 +1/2,比如 varchr(10),然后输入 abc 三个字符,那么实际存储大小为 3 个字节。除此之外,varchar 还需要使用 1 或 2 个额外字节记录字符串的长度,如果列的最大长度小于等于 255 字节(是定义的最长长度,不是实际长度),则使用 1 个字节表示长度,否则使用 2 个字节来表示。取数据的时候,不需要去掉多余的空格


↙↙↙阅读原文可查看相关链接,并与作者交流