面试题自我总结

一、接口框架的实现:
通过分层设计将维护数据和代码分离,把结构分为存储测试数据的数据层、测试用例存放的测试层、存放通用的测试方法封装的逻辑层。unittest、request、ddt、openpyxl等模块封装功能,通过反射原理存储或读取相应数据,email模块和jenkins软件快速收集输出结果

二、接口关联怎么做:
借助反射原理,设计一个接口数据管理类,将功能中接口所依赖的数据在测试运行时动态的进行存储和提取,以此来完成接口的关联。

三、简述python和数据库交互过程;万一忘记close,怎么办:
通过pymysql模块,创建连接(connect)、游标和返回数据格式(cursor).数据库会自动关闭,但是最好在数据库开启和关闭的地方加上log日志记录

四、简述日志怎么收集的,模块怎么用的,过程;
创建日志文件并设定收集信息等级,编辑日志记录格式并指定输出信息等级,指定输出的文本渠道及格式,返回日志对象。需要记录信息时根据需要按照信息等级直接写入。

五、测试环境、正式环境怎么快速切换:
在配置文件中事先写好相应的测试环境、正式环境的配置,并设置开关;根据开关的on/off切换环境

六、用的什么配置文件、怎么读取:
一般使用cfg配置文件,可以利用configparser模块读取(configparser.read)

七、python发邮件怎么用的,过程:
使用email模块中mimumultipart编辑正文,mimetext添加附件,使用smtp登录邮箱创建邮件

八、session、cookie、token的区别:
session是会话,类似于身份识别,将信息存储在服务端,但是会被负载均衡影响;cookie是数据,相当于登录账户,储存在本地,但是每个域使用数据有限;token是令牌,在第一次登录后会返回token,然后时间范围内的再次进行登录或其他需要登录的操作时,无需访问数据库查询账户信息,而是直接使用token就行,减轻服务器压力,减少数据库的访问量

九、响应的json数据怎么解析:
可以使用json.loads或者eval转换格式查看

十、怎么调用类里面的函数:
使用import

十一、静态函数,类函数的区别:
静态函数主要处理与这个类的逻辑关联,如验证数据;类函数更关注从类中调用方法,而不是从实例中调用;静态函数不需要self传值,类函数需要;类函数可以调用类变量但不可以调用实例变量,静态函数则二者皆不可调用

十二、超继承、多态:
多态简单来讲就是父类的重写,超继承。。。

十三、装饰器怎么实现:

十四、unittest和pytest区别:
pytest功能比unittest更加简洁方便,并且可以兼容unittest的testcase

十五、xpath的相对定位方法,如何定位同级的下一个节点:
xpath可以使用//标签名[@属性名=属性量];
定位同级的下一个节点可以使用following-sibling,反之则可以使用preceding-sibling

十六、数据库分类:
分为关系型数据库和非关系型数据库

十七、什么是外键:
子表的主键在主表中就是外键

十八、存储过程:

十九、order by和group by的区别:
order by是升序排列,group by是根据后聚合函数分组显示

二十、查询表中所有数据并去掉重复数据:
查询的关键字段前加distinct

二十一、mongo db用来存什么数据:
文件存储数据库,数据格式是类似json的bson

二十二、linux动态查看日志:
tail -f 日志文件

二十三、linux正向查看,反向查看文件:
正向cat反向tac

二十四、linux快速跳到首行和最后一行的快捷键
gg第一行 shift+g最后一行

二十五、linux查看进程:
ps aux

二十六、linux查看端口:
netstat -ntlp

二十七、部署服务器后,启动不起来,怎么查看相关服务有没有开启:
service 服务名 status

原文地址:https://www.cnblogs.com/keima/p/10936039.html