软件测试、自动化测试、测试开发面试总结(记录使用,会不定期更新)

面试杂项

- pytest

pytest.mark.firture() 前后置固件,可以给方法起别名,提供其他case调用

pytest.mark.parametrize(变量名,变量值)  参数化用例,需要用例接受变量名

pytest.mark.skipif() 跳过用例执行,可以写跳过原因

pytest -reruns 3。 失败重试3次 ,最终失败后抛出异常 

pytest  -vs 生成详细报告

​			 -n=3 使用3个线程执行用例

​			 -x  出现失败后停止测试

​			 -maxfail=3 失败3个用例后停止 

pytest --alluredir=./report xxx.py

allure genetate report -o report/html --clear
  • selenium
webDriverwait(driver,timeout=10).until(lama x:x.find_element_by_id('#q'))

WebDriverwait(driver,timeout=10).until(EC.presence_of_element_located((By.id,'q')))

显示等待:webdriver 寻找元素,当第一次查找没有检测到元素,会等待规定时间,时间内满足条件则继续执行,不满足则抛出异常,刷新时间可以自定义

driver.implicitly_wait(3)

隐式等待:webdricer 查找元素,当第一次查找没有检测到元素,会等待规定时间内,不停的检测是否满足条件,满足则继续执行,不满足且超出时间则抛抛出异常

Xpath  通过浏览器复制xpath路径、'//input[@id="q"]'  //开头、层级元素、@属性

css 通过浏览器复制css ,'#q' 使用属性 ,'.class_button1' 使用class
  • appium
滑动 swipe 通过x y,x y 坐标进行滑动

webview

  • Postman、Charles
pro-request Script 请求前执行

Tests 请求结束后执行

porxy ==> breakpoint  修改请求和返回

tools ==> rewrite 修改请求

tools ==> Map local 映射到本地

tools ==> Map remote 映射到其他域名链接
  • Linux
cd xx  跳转到xx目录

ls  -a 显示当前文件夹下所有文件

mv /usr/xxx /opt/xxx 移动xxx文件到 /opt/xxx

cp /usr/xxx /opt/xxx 复制xxx文件到 /opt/xxx

cat xx   查看xx文件内容

more xx 查看xx文件内容    /aaa  寻找aaa匹配的内容  空格跳转下一页

vim 编辑文件 i 进入编辑模式 o换行后进入编辑模式 wq!强制保存退出 /xxx 查找xxx 

head  100n  查看前100行 

tail -f  xxx.log. 查看实时日志

tail -10f xxx.log  查看后10行日志

ps -ef 查看进程信息   ps -ef | grep xxx    查看xxx的进程信息

du -sh 查看当前文件大小   du -sh xx  

top   查看系统cpu、内存占比

chmod 777 xxx 赋予权限

whereis  查看文件路径

which 查看命令路径

find xxx 寻找文件xxx

ping 查看是否可以访问ip
  • http协议

get、post区别

请求方式不同

请求参数长度get有最大限制,post没有

请求参数get请求参数在URL中、post有表单、json、text等格式

get经常用来做查询类对数据没有更新的操作,post常用来做有数据更新的操作新增、编辑

三次握手四次分手

客户端发送连接请求到服务端,服务端接受请求后,将接受的请求报文+数据包返回给客户端,客户端接受服务端数据后,再次将接受的报文+数据包发送给客户端,服务端接受客户端发来的报文后,建立连接

客户端发送端开连接请求到服务端,服务端接受请求后,加数据包返回客户端,此时服务端处于关闭等待状态,客户端接受数据后,报文+数据包发送给服务端确认关闭,服务端接受到数据后,客户端等待一段时间确认关闭后端开连接

  • cookie、session、token区别
三者都是用户鉴权使用,用来提高用户体验

cookie:一般保存在客户单浏览器中,键值对形式,容易被篡改

session:保存在服务端,比较消耗服务端资源,有效时间后会销毁失效

token:一般存在数据库中,使用加密形式存储,用来做身份令牌验证
  • 状态码:
200 请求成功

201 数据更新成功

204 删除数据成功

400 请求中数据错误,无法被服务端识别

401 用户没有权限访问

403 禁止访问

404 访问的资源不存在

500 服务端发生错误,客户端无法判断请求是否成功

502 网关错误

503 服务当前不能处理客户端请求,可能一段时间后会恢复
  • mysql
1、关系型非关系型数据的区别:

关系型数据库的优点:
容易理解。因为它采用了关系模型来组织数据。
可以保持数据的一致性。
数据更新的开销比较小。
支持复杂查询(带where子句的查询)

非关系数据库的优点
不需要经过sql层的解析,读写效率高;
基于键值对,数据的扩展性好;
可以支持多种类型数据的存储,如图片,文档等。
  • mysql四大特性:
原子性:执行的事务不可拆分,要么全部执行成功要么全失败

一致性:保证事务在执行前后整体的状态保证一致,执行前后总量保持不变。如:互相转账,执行前两个人的总金额为1000,执行后也是2000

隔离型:事务与事务之间是隔离的,不应该相互影响

持久性:一旦事务执行成功,对数据的修改是持久的,关机之后也不受影响

隔离级别:

索引:提高查询效率,但索引也不是设置越多越好,因为索引本身也是文件,会占用数据库的资源。添加索引要尽可能的在创表初期就确定,否则后续维护很费时间

索引优点:可以大大的提高数据获取速度、减少查询分组和排序的时间、唯一索引可以保证数据的唯一性

索引缺点:创建和维护需要时间,数据量越大,时间越长、在对数据进行增删改操作时,索引也会参与,降低了维护速度、索引本省也占用数据库资源,不是越多越好

主键索引,唯一不可重复  ,一张表只能有一个

唯一索引,数据不可重复,可设置多个唯一索引

普通索引,提高数据库获取数据的速度

创建索引的原则:

​		优先选择经常分组、条件、查询使用的字段

脏读、不可重复度、幻读现象的解释和避免方法:

insert into class('qe','qwe')  values('a','b')

delete from class where kk='q'

update class set chengji='20' where id=5

select k,q from class order by id desc

select a.xxx,b.xx2 from class as a inner join source as b on a.id=b.id 

python

看字符串处理、列表、字典处理,排序算法、面向对象特性、设计模式,多线程

git

git init 初始化

git status 查看当前分支状态

git add .  追踪所有文件

git commit -m "提交说明文字" 提交并描述更改说明

git remote add origin 远程git仓库链接   本地关联远程仓库

git push -u origin master  将本地变更提交远程仓库

git branch 显示分支

git checkout xxx  跳转分支xxx

git merge xxx 合并xxx分支到本地当前分支
  • redis、MQ

r

edis数据存储在内存中,读写数据速度快

redis操作是原子性,要么全执行成功,要么全失败

redis支持丰富的数据类型,strsetlistmap

redis可以用于缓存、消息队列,日历订阅等场景

MQ优点:可以接偶,异步执行任务,削峰  缺点:系统复杂性,可用性,需要保证只被消费一次
  • 性能测试、Jmeter

压测量评估:通过历史数据或者产品运营给出的数据进行压测量评估

具体的压测过程:先确定性能测试的范围
,然后对相关的场景进行分析,确定压测用例(编号、标题、测试步骤,CPU、内存、TPS成功率、RT时间),然后准备压测环境,准备好后开始压测

影响性能指标/通过什么判断压测标准

- Flask/Django

python manage.py rumserver 8008

python manage.py makemigre

生命周期:用户通过浏览器发送请求到Django,Django通过wsgi协议去将接受的请求转化后给到url模块,URL路由传递到view模块进行业务逻辑处理,并与model模块进行数据交互,处理完成后传递给Template模块将页面和数据渲染完成后,返回给浏览器显示

- 测试报告

测试概况:描述当前的测试模块、测试进度,需要优先解决的bug,

测试遗留问题和风险:描述当前项目遗留上线的问题,bug风险预估

测试数据:描述详细的测试模块及相关问题的数据报表,用例执行数据

项目总结:本次在测试过程中遇到的问题,需要改进和优化的方面,以及项目的最终结论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值