1.性能测试的流程?
1.测试需求分析
2.测试计划制定与评审
3.测试用例设计与开发
4.测试执行与监控
5.分析测试结果
6.编写性能测试报告
7.测试经验总结
2.一份测试计划应该包括哪些内容?
背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、常用术语、提交文档、风险分析。
3.你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?
首先,将问题提交到缺陷管理库里面进行备案。
然后,要获取判断的依据和标准:
根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;
如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;
根据用户的一般使用习惯,来确认是否是缺陷;
与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;
合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。
等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。
4.get和post的区别?
get请求的的入参是在URL地址栏当中的
post请求的入参是在body当中的
post请求方法比get请求方法要安全,并且携带的数据会更多
post请求方法一般用于表单提交或者向服务器提交数据,get请求用来查询会比较多
5.你怎么判断一个bug是前端还是后端?
我首先会通过fiddler或者谷歌浏览器F12开发者调试模式去抓取接口,如果接口的入参没有问题,并且返回的报文也没有问题,那说明就是一个前端的bug,有可能是JavaScript代码的语法问题,或者页面渲染的问题,或者样式问题导致的
如果接口的入参有问题,那就是前端的问题
如果接口的入参没有问题,但是接口的返回报文出现了报错那说明就是后端的bug,至于是什么原因导致的,我一般都会通过xshell去连接Linux服务器,查看实时的日志去分析日志然后定位bug
6.unittest单元测试框架里面失败重跑机制?
用@ rerun 装饰器
7.pytest框架失败重跑机制?
命令行模式:pytest --reruns 2 test_example.py
8.Jmeter怎么做关联接口?
先调通登录接口,然后把响应体的内容,通过正则提取呀,或者json path提取器进行提取,然后再添加一个http信息头管理期在里面用键为:token 值为:${token}进行引用,然后在下一个接口的请求头里面就自带token参数了。
9.http和https的区别?
https协议属于超文本传输加密协议需要到CA申请证书,一般免费证书较少,需要钱,http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议,http和https用的端口也不一样,前者是80,后者是443,http的连接很简单,是无状态的,HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议
10.python中的数据类型?
字符串、Number、元组、列表、字典、集合等等
11.元组和列表的区别?
元组是不可变的基本数据类型、列表是可变的基本数据类型
元组是()小括号来定义的、列表是用中括号[]来定义的
元组的处理速度会列表要快
元组比列表要更加的安全
12.列表和字典的区别?
字典是{}大括号来定义的、列表是用中括号[]来定义的
字典是无序的不能通过索引来取值、列表是有序的
字典是以键值对的形式存在的、列表相当于就是一个容器、里面可以放置任何的数据类型
13.性能测试的bug有哪些?
数据库最大连接数不够
并发时数据库发生死锁
优化慢sql语句,使用唯一索引进行查询数据
14.会接口里面的mock吗?
mock 就是在测试环境不稳定的时候提起把接口的返回提前写好放入mock server系统
15.APP的弱网测试怎么测?
用fiddler 来模拟弱网测试
比如在fiddler里面设置限制上传和下载的速度
通过模拟5g 4g 3g 2g WiFi网络频段来进行APP端的弱网测试、看一下是否会有数据丢包的现象
web页面还可以通过f12,设置网络
16.左连接和右连接的区别?
左连接(LEFT JOIN):左连接会返回左表中的所有记录,即使右表中没有匹配的记录也会显示左表中的数据,右表中的数据则显示为NULL。如果右表中没有匹配的记录,左表中的数据仍然会显示,但右表中的数据会显示为空。
右连接(RIGHT JOIN):右连接会返回右表中的所有记录,即使左表中没有匹配的记录也会显示右表中的数据,左表中的数据则显示为NULL。如果左表中没有匹配的记录,右表中的数据仍然会显示,但左表中的数据会显示为空
17. 对一个列表有相同的元素去重有哪些方法?
set和for循环
#1.set集合
list1 = ['test','dcs13',888,666,'test']
set1 = set(list1)
print(set1)
#2.通过for循环
list1 = ['test','dcs13',888,666,'test']
new=[]
for i in list1:
if i not in new:
new.append(i)
print(new)
18.Python中迭代器和生成器的区别?
迭代器 ==》有两个基本的方法:iter() 和 next()。字符串,列表或元组对象都可用于创建迭代器
生成器 ==》使用了 yield 的函数被称为生成器(generator)
跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。
在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。
调用一个生成器函数,返回的是一个迭代器对象。
19.TPS 和 QPS区别?
TPS:每秒事务数,指的是服务器每秒处理的事务数量。一个事务通常包括客户端请求、服务器处理及返回结果给客户端的完整过程。TPS是衡量系统整体事务处理能力的重要指标,常用于评估系统在高并发条件下的表现
适用于需要频繁进行数据读写操作的系统,如在线交易、订单处理等。在金融、电商等要求事务完整性较高的场景下,TPS尤为重要
QPS:每秒查询数,指的是服务器每秒能够响应的查询次数。QPS更侧重于查询操作的效率,主要用于衡量查询服务器的性能,如数据库的读操作
主要受查询优化、索引设计、缓存策略等因素影响。优化QPS的方法包括建立高效索引、使用快速查询算法、实施缓存机制等
20.locust分布式压测?
每台机器安装好python-locust环境,并使用编写的同一个脚本
单机分布式压测:
调度机:locust -f locust_batch_data.py --master
执行机:locust -f locust_batch_data.py --slave
多级分布式压测:
调度机:locust -f locust_batch_data.py --master
执行机:locust -f locust_batch_data.py --slave --master-host=192.168.*.*
21.app测试怎么抓取闪退问题?
一般可以通过adb命令,然后通过monkey随机测试 ,如果发现闪退和崩溃,在日志中搜索关键字,截图给我开发同事去定位
1)、ANR问题(程序无响应):在日志中搜索“ANR"(application no response)
2)、闪退问题:在日志中搜索"crash"
3)、异常:搜索"exception"
4)、强制退出:搜索"force closed"
22.进程/线程/协程的区别?
进程是一个应用程序的启动实例
线程属于进程,时程序的执行者,一个进程最少包含一个主线程,也可以有更多的子线程,线程有自己的栈空间,对操作系统而言,线程是最小的执行单元,进程是最小的资源管理单元
协程是一种比线程更加轻量级的存在,一个线程可以拥有多个协程
23.app测试和web测试有什么区别?
WEB测试和App测试从流程上来说,没有区别。
都需要经历测试计划方案,用例设计,测试执行,缺陷管理,测试报告等相关活动。
从技术上来说,WEB测试和APP测试其测试类型也基本相似,都需要进行功能测试、性能测试、安全性测试、GUI测试等测试类型。
他们的主要区别在于具体测试的细节和方法有区别,比如:性能测试,在WEB测试只需要测试响应时间这个要素,在App测试中还需要考虑流量测试和耗电量测试。
兼容性测试:在WEB端是兼容浏览器,在App端兼容的是手机设备。而且相对应的兼容性测试工具也不相同,WEB因为是测试兼容浏览器,所以需要使用不同的浏览器进行兼容性测试(常见的是兼容IE6,IE8,chrome,firefox)如果是手机端,那么就需要兼容不同品牌,不同分辨率,不同android版本甚至不同操作系统的兼容。(常见的兼容方式是兼容市场占用率前N位的手机即可),有时候也可以使用到兼容性测试工具,但WEB兼容性工具多用IETester等工具,而App兼容性测试会使用Testin这样的商业工具也可以做测试。
安装测试:WEB测试基本上没有客户端层面的安装测试,但是App测试是存在客户端层面的安装测试,那么就具备相关的测试点。还有,App测试基于手机设备,还有一些手机设备的专项测试。如交叉事件测试,操作类型测试,网络测试(弱网测试,网络切换)
交叉事件测试:就是在操作某个软件的时候,来电话、来短信,电量不足提示等外部事件。
操作类型测试:如横屏测试,手势测试
网络测试:包含弱网和网络切换测试。需要测试弱网所造成的用户体验,重点要考虑回退和刷新是否会造成二次提交。弱网络的模拟,据说可以用360wifi实现设置。从系统架构的层面,WEB测试只要更新了服务器端,客户端就会同步会更新。而且客户端是可以保证每一个用户的客户端完全一致的。但是APP端是不能够保证完全一致的,除非用户更新客户端。如果是APP下修改了服务器端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍。
还有升级测试:升级测试的提醒机制,升级取消是否会影响原有功能的使用,升级后用户数据是否被清除了。
标签:WEB,面试题,locust,生成器,列表,测试,客户端
From: https://www.cnblogs.com/mrzxb/p/18576683