WEB/APP性能测试
1.性能测试关注的指标是什么
1.吞吐量(Rps):每秒钟体系可以大概处理的请求数、任务数
2.相应时间(Rt):服务处理一个请求或一个任务的耗时
3.错误率:一批请求中结果出错的请求所占比例
4.从服务器的角度看,性能测试主要关注CPU、内存、服务器负载、网络、磁盘IO等。
5.每秒事物数(TPS)
6.内存(CPU)
7.网络(IO)
8.每秒点击数\
2.要举行性能测试,你是如何展开操作的
1.确定关键业务,关键路径;
2.确定测试的关键数据。比如并发量,相应时间,循环次数等;
3.准备测试环境,完成脚本录制或脚本开发;
4.执行测试,观察或监控输出参数,比如吞吐量,相应时间,资源占有率等;
5.对执行结果举行分析,分析性能问题。
3.怎么分析性能测试结果
1.检察聚合报告和服务器的资源使用图,检查相应时间,事务成功率,CPU,内存和IO使用率是否到达要求,如果出错率到达了总请求的3%,我们会检查是什么原因导致的,修改好后,重新测试;
2.如果出现了性能瓶颈,比如相应时间,或者CPU使用率不达标,我们会从服务器上导出日志,分析是哪个地方导致相应时间过长,如果分析不出来,就叫上开发一起讨论,确定问题后,就提单给代发修复,修复好了就举行回归测试。
3.检察聚合报告和服务器的资源使用图,检查相应时间,事务成功率,CPU,内存和IO使用率是否到达要求,如果出错率到达了总请求数的3%,我们会检查是什么原因导致的,修改好后,重新测试;事务通过率为100%,90%的事务相应时间不超过5秒,并发用户为1000人,CPU和内存的使用率为70%以下
4.如何判断网络是否存在瓶颈
检察在整个性能测试过程中,网络的吞吐量是多少,如果网络的吞吐量占到了服务器的70%以上,我们就认为网络存在瓶颈,通常会增长带宽或者压缩传输数据。
5.如何判断相应时间不达标
根据性能测试结果先检检察下是否是服务器带宽存在问题,如果带宽存在瓶颈,则会思量增长带宽或者压缩传输数据,如果带宽没有问题的话,我们会从服务器上导出日志,开发一起讨论分析是哪个地方导致相应时间过长,确定问题后,就提单给开发修复,修复好了就举行回归测试。
6.如何判断CPU使用率不达标
CPU使用率不达标,我们会从服务器上导出日志,分析是哪个地方导致CPU使用率不达标,如果分析不出来,就叫上开发一起讨论,确定问题后,就提单给开发修复,修复好了就举行回归测试
7.项目最佳的并发用户数是多少
通过负载测试,不停增长用户数,随着用户数的增长,各项性能指标也会相应产生厘革,当出现了性能拐点,比如,当用户数到达某个数目级时,相应时间忽然增长,那么这个拐点处对应的用户数就是体系能承载的最大用户数,我们当时做到1500个并发用户的时间,查询功能的相应时间超过了性能指标2秒多,原因是有几个表的索引建得不合理导致的,重新建索引后,问题就办理了。我们当时做到1500并发用户后,就没再继续增长用户量了,
8.App常见瓦解原因
1.设备碎片化:由于设备极具多样性,App在差别的设备上大概有差别表现形式;
2.宽带限制:宽带不佳的网络对App所需的快速相应时间不敷;
3.网络的厘革:差别网络的切换大概会影响App的稳固性;
4.内存管理:大概内存过低,或者是授权的内存位置的使用大概会导致App失败;
5.用户过多:一连数目过多大概会导致App瓦解;
6.代码错误:没有经过测试的新功能,大概会导致App在生产环境中失败;
7.第三方服务:广告或弹出屏幕大概会导致App瓦解。
9.弱网环境下你是如何测试的
A.2G的网速150kbps,折合下载速度15-20K/S.B=8b.g
B.3G的网速 1-6Mbps,折合下载速度120K/S-600K/S.
C.4G的网速10-100Mbps,折合下载速度1.5M/s-10M/s.
a)使用真实的SIM卡,运营上网络来举行测试。
b)通过代理的方式模仿弱网环境下举行测试(charles应延迟)
c)链接模仿弱网的热点举行测试(如360wifi助手可以设置)
1.在Charles中设置需要模仿弱网的主机和端口号
2.切换2G3G4G网络,测试客户端的容错能力(瓦解或者ANR问题)
3.还可以设置带宽、利用率、最大传输单位、不稳固性范围等参数模仿差别的网络环境,测试客户端的容错能力
10.测试手机兼容性如何测试的
一般测试手机兼容性的时间会思量得手机的型号,分辨率以及安卓版本号,一般常用的手机型号如:华为,锤子,小米,魅族等,一般碎片化会严重,从Android6.0到Android10.0的版本是不一样的,而近来的版本号已经到10了,也就是AndroidQ,它是协助开发者利用5G,折叠屏,无框屏,设备内置Al等最新技术继续创新,同时确保用户安全,隐私及数字康健。向分辨率这块大部门是19201080,还有很多多少的分变率,如7201280,还有大的分辨率,都要思量兼容,否则的话手机视觉体验就会不太好,一般会买真机去测。
11.压力测试与负载测试的区别
1.负载测试 背10个人跑
2.压力测试 背一个 在背一个 在背一个
12.你是如何窜改请求数据的
1.我使用的是Charles举行窜改相应数据的
2.在配置好代理以后,抓取对应想要测试的接口,对该接口设置断点
3.再次进入这个请求,断点停留在当前的接口位置,点击下一步(excute)
4.在顶部点击Edit request修改请求数据,再次点击excute
5.检察接口放回的相应数据是否和对应错误参数的提示划一,是否有异常数值
13.App提示无法毗连网络,你会如何排查
1.首先看其他app能否毗连网络,如果也连不上就是网络问题
2接着切换流量,wifi,热点,几种网络之间来回切换,如果在流量下访问不到,就是欠费啦
3.接着在排查wifi是否设置了代理,如果开了代理就通过抓包工具看看请求相应是否正常,如果没有相应或者400 404之类的就是后端问题 如果抓不到包就是代理配置有问题或者https证书问题
ADB命令
1.说几个常见的adb命令
- 检察当前毗连设备:adb devices
- 检察日志:adb logcat
- 安装apk文件:adb install -r (apk的绝对路径)
- 卸载App: adb uninstall 包名 adb uninstall -k 包名 (生存配置及缓存文件)
- 列出所有的包名: adb shell pm list package
- 列出第三方的包名: adb shell pm list package - 3
- 列出体系应用的包名: adb shell pm list package - s
- 检察手机内存的命令: adb shell dumpsys meminfo 包名
- 启动: adb start server
- 关闭: adb kill-server
- adb logcat . 日志级别 V Verbose 最低 D Debug bug I Info 信息 W Warn 警告 E Error 错误 F Fatal 致命S Silent (supress all output) adb install -r xx.apk 覆盖低版本的
adb install -r -d 覆盖高版本的
2.性能测试的adb命令
adb shell dumpsys cpuinfo 检察手机cpu的使用环境
adb shell getprop|findstr dalvik 手机体系自己运行的内存使用
Monkey命令
1.说几个monkey指令
- 打印日志的命令: adb shell monkey 200 >d: / monkeylog. txt
- 触摸变乱:--pct-touch
- 动作变乱:--pct-motion
- 轨迹变乱:--pct-tackball
- 体系按键:--pct-sykeys
- 基本导航:--pct-nav
- 主要导航:--pct-majornav
- 启动变乱:--pct-qppswitch
- 指定弹窗变乱:--pct-flip
- 指定其他变乱:--pct-anyevent
- 指定缩放变乱:--pct-pinchzoom
- 忽略瓦解:--ignore-crashes
- 忽略超时:--ignore-timeouts
- 忽略许可异常:--ignore-security-exeptions
- 延时:--throttle
- adb shell monkey -p com.sxxh.linghuo -s 23 --throttle 200 --ignore-crashes --ignore-timeouts -v -v -v 400
postman
1.postman与jmeter的区别是什么?
1.用例组织差别:jmeter的组织是比力偏扁平,首先它没有工作空间的概念,直接就是测试操持,而postman功能上更简朴,组织方式是轻量级,他主要针对的是单个的http请求。
2.支持接口的类型与测试的类型差别:jmeter的功能更强大,可以通过各种类型的接口,不支持的页可以通过网上或者自己编写的插件举行扩展,而postman更轻量级,定位差别,可用来测试rest接口。
3.配置差别:jmeter可以在线程组里添加http,tcp,而postman只支持rest接口。
2.postman做接口测试
1.postman上将接口地点 传参方式以及参数写在对应的输入框里面 点击send按钮 会在下面reponse文本框显示返回的数据是以json凡是返回来的,这个 时间我们会对应接口文档 惊醒正返例数据的填写 对比接口文档检察数据是否符合尺度 2.创建项目》选择请求方式》输入接口地点》配置参数名以及参数值》send按钮》看看是否有返回数据
3.postman配置测试环境
- 1:在Postman中设置两个环境,本地环境、测试环境
- 2:在两个环境中分别设置变量名为 base_url的变量,存放各自环境的IP地点
Postman 中获取环境变量值的方式为:{{变量名}},这样就可以获取变量值。
这里base_url的值获取方式就是:{{base_url}}
- 3:在Postman的URL地点栏中设置 为 {{base_url}}/login
- 4:切换差别的环境,base_url的值就会发生改变,这样就到达了IP地点切换的结果。
4.postman中如何实现接口之间的关联
获取相应文本,通过json提取器或正则表达式提取相关参数,下一个接口直接引用界说的参数
如何取:
第一个接口tests中用pm.response.json() 获取所有返回值,根据自己的需要取,用pm.globals.set(变量名,取数据的表达式) 界说为全局变量
如何用:
在第二个接口中直接用{{变量名}} 引用即可
Mysql数据库
1.Mysql数据库查询语句有哪些/多表联查
数据库语言最常用的是SQL
多表联查:select * from table1 t1,table2 t2 where tl.id=t2.id
这样就是多表联查。
left join
right join
inner join
2.Mysql数据库的增编削查
增:alter table 数据表名 add birthday datetime;
删:alter table 表名 drop 列名;
改:
1.修改字段,不重定名,用modify alter table 数据表名 modify birthday date;
2.修改字段,重定名,用change alter table 表名 change 原名 新名 类型及约束 alter table 数据表名 change birthday birth date;
查:查询表使用数据 select * from 表名;
部门查询 select * from 表名 where 条件;
可以使用as 为列表指定别名 select 字段 as 别名,字段 as 别名 from 数据表名 where…;
3.sql内关联和内关联的区别
内关联是求交集 外关联是以主表为尺度,去附表找需要的信息
4.认识数据库嘛 平常数据库用的多吗
还行,一般出现问题,遇到bug,就要去查询数据库,开端定为问题。开发会给到我们一个库表计划的excel(数据字典),里面有描述表名和表中的字段,我把交易过程的一些唯一标识,把他作为where条件去查询数据。开端分析后,再把问题暴露给开发。
(比如做智联项目付出时,输入付出密码后,已经返回了付出成功的提示信息,然后界面上的订单查询照旧待付款,这个时间就要去查询订单表的数据,找到自己刚才做的交易的那一笔订单,去分析一下错误,再暴露给开发
Jmeter
1.Jmeter是如何测试的,如何使用的
1.打开jmeter;
2.创建线程组;
3.设置线程数和循环次数;
4.配置元件;
5.配置我们需要举行测试的步伐协议、地点和端口;
6.构造http请求;
7.添加http请求头;
8.添加断言;
9.添加检察结果树;
10.添加Summary Report;
11.执行测试操持,执行测试操持不能用GUI,需要用命令来执行;
12.web报告。
2.jmeter毗连数据库
1.在jmeter的线程组中分别添加JDBC Connection ConfigConfiguration 、JDBC Request 、 Debug Sampler 、 检察结果数。
2.在测试操持中将毗连mysql需要的包加到classpath中。
3.在JDBC Connection Configuration 中添加JDBC的配置。
3.jmeter为什么要参数化
1,多用户登录的时间,如果不举行参数化就没演示了。
2,需要使用CSV将参数放到文件,来演示多用户登岸。
3,在举行录制的时间,有大概存在第二个请求的参数是从第一个请求中获取出来的,需要在第一个请求下,去将参数提取出来,再到第二个请求中举行参数化。
4.jmeter如何举行压力测试
我们在公司大部门是举行的数据库压测以及接口压测
创建线程组设置循环次数创建http请求添加检察结果数和聚合报告
jmeter设置线程数 启动时间 循环次数运行 检查并生存运行数据 判断是否需要优化
5.jmeter的接口测试是怎么做的
1.把线程组设置数目为1,循环次数为1
2.配置好全局变量URL通过配置元件---用户自界说的变量添加
3.增长配置元件http请求默认值,添加事物控制器
4.在事物控制中添加http请求添加接口请求信息
5.添加对应的断言元件举行断言
6.监听器(检察结果树,图形结果,聚合报告等)
6.jmeter中的关联是怎么做的
我们的一个接口,需要别的一个接口,相应里边的某个参数 会用jmeter中提取方法,常用的四种方法 边界提取器 xpath提取器 beanshel
1. 正则表达式提取器
办理方案分析 1. 测试操持->线程组
2. 线程组->HTTP请求(获取title)
3. 获取title->后置处理器->正则表现式提取器
4. 线程组->HTTP请求(使用title)
5. 测试操持->察看结果树
2. XPath Extractor
办理方案分析 1. 测试操持->线程组
2. 线程组->HTTP请求(获取title)
3. 获取title->后置处理器->XPath Extractor
4. 线程组->HTTP请求(使用title)
5. 测试操持->察看结果树
Linux
1.Linux体系操作的指令增长 删除 复制 移动等
Cd:进入目次
Cd app:切换到app目次
Cd.. :切换到上一层目次
Cd/ : 切换到体系根目次
Ifconfig :检察ip
Ll:检察文件及其属性
Vi: 编辑
Rm-rf: 删除
Cp:复制
Mv 隐藏文件
Ls -d只显示隐藏文件
Pwd:显示当前路径
Mv:移动
Df 磁盘空间
Touch:创建文件
Ps:检察进程
cat /proc/cpuinfo:检察CPU信息
2.Linux检察日志命令
1.Tail【参数】【文件】
tail -f info.log : 动态检察及时输出info.log日志
tail -n 200 info.log: 检察info.log日志后200行
tail -f info.log | grep "orderId": 动态检察含有关键字orderId的日志
2.Cat
cat info.log:检察info.log的全部日志内容
cat info.log | grep "java":检察info.log的java关键字关联的全部内容
cat info.log | grep -A 5 "java":检察info.log的java关键字后5行关联的全部内容
cat info.log | grep -B 10 "java":检察info.log的java关键字前10行关联的全部内容
cat info.log | grep -C 20 "java":检察info.log的java关键字前后20行关联的全部内容
3.Less
less info.log :从头开始检察info.log日志内容
4.More
more info.log: 检察info.log的日志内容,按下方附加操作滚动日志内容
more info.log |grep "test": 检察全部关键字test关联内容
5.Head
head -n 20 info.log: 检察info.log日志的前20行内容
3.Linux体系日志检察指令,压缩,解压指令等问题
tar -xvf 文件名 :解压
Tar -n logcat 检察体系日志
tar -zcvf 文件名:压缩
4.Linux 中 find和grep的区别
grep是根据文件的内容举行查找,会对文件的每一行按照给定的模式举行匹配查找。语法: find 查找位置 文件名或目次名
find是根据文件的属性举行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间 语法:grep 字符串 文件名
5.Linux 一个文件的访问权限是755,其含义是什么
1、第一位7,代表文件所有者拥有的权限为可读
2、第二位5,代表文件所有者同组用户的权限为可读
3、第三位5,代表公共用户的权限为可读
6.linux检察文件用什么命令 检察进程用什么命令
检察进程:ps -ef | grep 进程号
检察文件内容的命令有 more less head tail cat
检察日志文件常用:less、view
7.检察日志主要检察什么内容
主要检察步伐运行的记载,比如付出失败,背景就有报错信息打印到.log日志文件中,就可以通过分析日志信息来开端定为问题。(增补:同时也去查询数据库,分析订单数据,检察付出状态等等)
最后: 下方这份完备的软件测试视频学习教程已经整理上传完成,朋侪们如果需要可以自行免费领取【保证100%免费】
这些资料,对于【软件测试】的朋侪来说应该是最全面最完备的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |