2022年6月28日面试题
1|0python基础
1|1一. python怎么连接数据库
答案:
- 安装pymysql:
pip install pymysql
- 连接数据库,创建游标
- 准备好增删改查的sql语句,执行sql语句
增
删
改
查
- 对于查询到的数据做处理
- 关闭游标
- 关闭连接
1|2二. python是怎么获取当前系统时间
方法一:使用datetime模块
方法二:使用time模块
1|3三. python中的数据类型有哪一些
总共有六大类:
Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
Set(集合)
按照可变不可变分类有两种:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)
数字类型细分
int(长整型)
float(浮点型)
complex(复数)
bool(布尔型)
1|4四. python中怎么设置定时任务
- 安装轻量级的定时任务调度的库:
pip install schedule
- 代码
schedule本身是个定时器。在while True死循环中,schedule.run_pending()是保持schedule一直运行,去查询上面那一堆的任务,在任务中,就可以设置不同的时间去运行
1|5五. python中元组和列表的区别
相同点
- 都是序列
- 可存储任何数据类型
- 可通过索引访问
- 都支持切片
- 可以随意嵌套
不同点
- 写法上不同,列表: [], 元组()
- 是否可变。列表上可变的,可随意的增加、删除、修改元素,元组上不可变的,不可增加、删除、修改元素
- 是否可作为字典的key。由于列表是可变的,不能作为字典的key,而元组是不可变的,可以作为字典的key
- 大小不同。存储同样的元素,与列表相比,元组内存更小,速度更快
1|6六. json和str类型转换
1|7七. Excel文件操作
- 安装openpyxl库:
pip install openpyxl
- 代码:
1|8八. 多线程、进程和协程
可以看这一篇:《Python的多线程、多进程及协程》
九. 如何提取json中的内容
- 正则表达式
- 使用json.loads() 转为python 字典,再通过key获得值
- jsonpath
2|0接口用例和自动化
2|1一. 淘宝中购买的接口测试,如何设计测试用例
2|2二. 微信支付的接口测试,如何设计测试用例
所有的接口测试,都涉及到这样的原则:
- 业务功能测试:正常场景、异常场景
- 边界值分析测试:业务规则边界分析、输入输出参数边界值分析(覆盖必选、组合可选、参数有无、参数顺序个数类型、参数类型数值大小,数值范围、参数字符串长短、特殊字符等等)
- 参数组合测试
- 异常情况测试:幂等、并发、事务、分布式、环境异常、大数据量测试
- 性能测试:响应时间、吞吐量、并发数、服务器资源使用率(CPU、内存、IO、网络)
- 安全测试:敏感信息是否加密、SQL注入等
2|3三. 框架如何设计?自动化的目的?达到的效果?框架分层的目的?用例的参数化?数据驱动的实现?
-
框架如何设计
设计思想:数据和用例分离
如何实现:数据存储在excel中,通过openpyxl读取数据,封装成一个字典列表的形式,列表中的每一个字典都对应着一条case,通过ddt.data进行拆包,将每个元素分别传给封装好的request方法去做请求,拿到响应之后,将结果提取出来和期望结果做断言,最后通过unittest的loader方法,来收集测试用例,生成html报告 -
自动化的目的:
(1). 基于接口层面实现脱离手工的方式高效执行测试
(2). 接口自动化目的是提升效率
(3). 通过适当的验证来获得控制反馈,对系统变更有把握
(4). 方便回归测试
(5). 提高回归测试效率,保证质量
(6). 控制住接口质量,终端问题可以少很多
(7). 更早的发现问题
(8). 缩短测试周期
(9). 发现更底层的问题 -
达到的效果:
(1). 灵活高效。灵活指的是可以通过编码的方式为接口自动化框架新增功能,高效指的是通过代码实现接口自动化,可以提高接口测试效率
(2). 可复用性。通过数据和用例分离,配置和用例分离,实现了一次配置,运行多次,代码复用性高,接口变动时,只需要修改相关配置和数据就行
(3). 可维护性。不懂代码的同学也能快速上手,维护测试数据,扩展测试用例
(4). 可扩展性。如果要在自动化框架的基础上扩展测试平台,需要可扩展性比较强
(5). 可追溯性。接口运行有相关的日志和报告,出现问题可以溯源
(6). 持续集成。可以部署到jenkins上实现持续集成 -
框架分层的目的
(1). 能够管理系统公共的数据,系统发生变化后方便切换
(2). 能够实现接口层级的复用,提高接口自动化脚本的可维护性
(3). 能够实现接口之间的关联,也就是需要结果提取器
(4). 能够操作数据库处理数据(预制数据、清理垃圾数据)
(5). 能够实现测试用例的前置后置步骤(类似 unittest 的 setup 和 teardown)
(6). 各种灵活的预期结果比较器
(7). 测试脚本和框架代码完全分离,懂接口测试但是不懂代码的人一天即可完全掌握,超低的学习使用成本
(8). 支撑 http/https 协议的接口测试
(9). 灵活的扩展能力(自定义函数和自定义比较器) -
用例的参数化
(1). 随机数:使用${}的形式,在公共目录common下定义了一些随机数的方法,如果请求数据中有出现这样的形式,会调用替换函数做替换
(2). 关联接口:使用{{}}的形式,在公共目录common下的context.py中定义了一个公共类Context,在接口请求后,如果excel的用例中有response_extract字段,那么就分割这个字段对应的值,将=前的值作为Context的key、将=后的jsonpath表达式从响应结果里提取出来作为value,反射给Context类,在接口请求前,如果请数据里有{{}}的形式,会调用替换函数做替换
反射类:common/context.py
随机数类:common/random_generate.py
变量替换:common/replace_variable.py
测试类:test_cases/test_my_request.py
- 数据驱动的实现
类上面加装饰器:@ddt.ddt
方法上面加装饰器:@ddt.data(*all_case_data)
3|0Linux
3|1一. linux中的查看日志的命令
查询实时日志
3|2二. linux中查看文件中过滤关键字的命令
3|3三. 如何查看linux中日志关键字上下几行的日志
后10行
前10行
4|0其他
4|1一. redis的作用?怎么测试?
- redis的作用
redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的I/O开销,更重要的是可以极大提升速度。redis 的应用场景包括:缓存系统(“热点”数据:高频读、低频写)、计数器、消息队列系统、排行榜、社交网络和实时系统
简而言之,就是加快访问速度,减少服务器和数据库压力
4|2二. kafka的作用?怎么测试?
- kafka的作用
- 流量削峰
- 系统节藕
- 异步处理
- 冗余存储
- 顺序性保障及回溯消费的功能
- 如何测试kafka
参考这一篇:《kafka测试方案》
__EOF__

本文链接:https://www.cnblogs.com/my_captain/p/16421712.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2018-06-28 HTML DOM scrollTo()方法
2017-06-28 《Advanced Bash-scripting Guide》学习(九):备份最后一天所有修改的文件