- 博客(24)
- 收藏
- 关注

原创 性能测试设计思路
本文记录性能测试相关思路,仅供参考,不断更新中~目录测试工具理论集合点分布式如果需要一千万并发,怎么测试:线程数=并发用户数?关于并发的失真度和测试准确度压测要持续跑一段时间吗,可以只迭代一次吗压测持续时间长短有什么区别业务时间和测试时间的区别服务端连接数设置多少合理测试工具理论1.以Jmeter为例,脚本中的所有组件,都需要线程去执行,线程不只是执行请求操作,这就消耗了测试机的资源,而且对并发也有损耗,所以脚本的组件不能添加太多,要么就二次开发工具.
2020-11-24 09:56:54
1243
2

原创 系统性能优化策略
系统设计概论解耦性:系统设计都是往微小化发展,都是不断解耦的过程;网络架构,系统架构,计算机架构,代码设计都是类似的思路。解耦使得开发过程更加灵活,各业务互不干扰,系统效率更高,系统的健壮性更强,系统更加弹性易于扩展。屏蔽异构性:通过统一的协议、中间件,API等,来兼容不同的底层硬件、架构、系统等,以方便系统规模化扩展、方便开发和移植。例如软件通过TCP/IP协议兼容底层硬件实现网络传输;业务开发通过中间件兼容操作系统异步执行:由于计算机架构的局限性以及CPU内存磁盘等硬件技
2020-11-03 16:15:43
800
1
原创 各种性能测试分类的关系
由于历史问题,性能测试有好多种分类,其实大多数性能测试属于并发测试,这些分类名词有些可能是没必要存在的,有些可能有重复的定义,我突发奇想,为这些分类做一个关系串联:一开始采用基准测试,用单线程摸一下接口的性能;然后采用多线程并发测试进一步施压;接着进一步提高线程数量做负载测试,查看系统性能表现,寻找性能拐点;在性能峰值附近持续施压做可靠性测试,看系统能否保持峰值性能;再加大压力做压力测试看系统是否会奔溃;进行失效恢复测试看系统奔溃之后的处理策略;通过配置测试验证限流熔断机制是..
2021-07-14 16:18:29
257
原创 Redis持久化策略之RDB快照
目录介绍触发机制:bgsave命令生成快照的过程如下:RDB的缺陷:1.可能会丢失数据(1)快照周期引发的数据丢失风险形象图:(2)配置策略引发的数据丢失:2.占用系统资源、阻滞系统服务介绍快照可以让redis在内存中的数据持久化到快照文件,这样下次启动redis时就能从文件中直接加载数据到内存;也为redis故障宕机做了一个保障。RDB即Redis DataBase ,默认的持久化方式。按照一定的周期将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件为du
2021-05-18 17:50:21
500
2
原创 Jmeter之分布式压测
目录分布式作用和原理配置步骤分布式作用和原理当单机配置无法支持高并发测试时,可以启用分布式模式分担负载。jmeter分布式压测时,选择其中一台作为控制机,其余的机器做为负载机,控制机会把脚本发送到每个负载机上,负载机获取到脚本就执行脚本(负载机只需要启动jmeter-server.bat或者jmeter-server),负载机回传执行结果给控制机,控制机会进行汇总。值得注意的是:如果请求执行成功,不会回传请求的响应信息,所以在查看结果树中,响应结果看到是空的。原理图:..
2020-12-11 11:37:32
486
原创 Jmeter之CLI命令行模式&HTML报表生成
目录CLI命令行模式HTML报表生成CLI命令行模式无图形界面执行脚本,比GUI模式占用更少资源,避免影响测试结果。默认会从4445-4455这些端口中选择一个启用,从4444开始,如果这10个端口都被占用,那么CLI模式无法运行。 参数 属性 -n non-gui-mode无图形界面模式 -t testplan待执行的测试计划 -l
2020-12-11 11:23:19
372
1
原创 Jmeter模块详解(11)BeanShell的常用功能
目录BeanShell 预处理程序BeanShell PreProcessor获取时间戳__time摘要算法处理__digestMD5哈希处理Base64编码处理toUpperCase()大写处理BeanShell后置处理程序BeanShell PostProcessor跨线程组全局变量__setProperty()跨线程组获取变量props.get()变量处理vars转换为字符串.toString()信息输出System.out.println()文件处
2020-12-07 16:51:08
2374
1
原创 Jmeter模块详解(10)断言
断言的作用有些请求响应状态码是200等正常响应,但是逻辑层面返回了错误信息,结果树里面依旧是成功的请求结果。使用断言可以有效发现出错的请求,断言不正确则请求直接视为错误。断言会消耗内存,尽量少用如下图请求没有成功,但响应码为200所以请求显示为成功执行,这种情况在性能测试执行过程中是无法发现问题的,因为不可能一个一个点开结果树查看:下图为使用了断言的效果,断言失败则请求视为执行失败:响应断言根据响应内容断言如图签发的响应体内容:测试字...
2020-12-07 16:40:02
374
原创 Jmeter模块详解(9)逻辑控制器
目录仅一次控制器Once Only Controller事务控制器Transaction Controller吞吐量控制器(业务比例)仅一次控制器Once Only Controller放入其中的请求每个线程只会迭代一次,如果作为Loop Controller的子节点,Once Only Controller在每次循环的第一次迭代时均会被执行如图登录请求置于其下目录:事务控制器Transaction Controller事务控制器会生产一个额外...
2020-12-07 16:24:31
497
原创 Python3.0模块之requests的post请求
目录post函数源码传formdata请求体传json请求体post函数源码查看post函数源码,得知有三种参数:传formdata请求体传一个formdata格式的请求体:也能指定formdata数据赋给data参数:抓包如下,请求体是formdata格式:传json请求体由于源码中json参数在data后面,要传json则需要指定传参:*如果不指定传参,则传送的依旧是formdata数据...
2020-11-26 17:39:36
1077
原创 Python3.0理论之变量&内存地址
全局变量与局部变量:全局变量可作用于函数内,函数内的局部变量只能作用于函数内;全局与局部变量同名,则函数优先调用局部变量;全局变量与局部变量的内存地址不同,若函数内引用了全局变量,则内存地址即为全局变量的地址a=1 #全局变量def he(b): a=5 #局部变量 print(a+b)he(10)print(a)a=1def he(b): print(a+b)he(10)print(a)globa...
2020-11-20 09:53:44
397
原创 Jmeter模块详解(8)定时器
目录固定定时器Constant Timer(迭代间隔)同步定时器Synchronizing Timer(集合点)常数吞吐量定时器Constant Throughput Timer(请求限流)准确吞吐量定时器Precise Throughput Timer(请求限流)定时器是在每个sampler之前执行的,无论定时器位置在sampler之前还是下面;当执行一个sampler之前时,所有当前作用域内的定时器都会被执行;如果需要定时器只对其中一个sampler生效,则需要将定时器.
2020-11-03 16:27:58
943
原创 Jmeter模块详解(7)非测试元件
HTTP代理服务器(录制抓包)1.添加HTTP代理服务器2.添加线程组和结果树3.配置将结果录制到线程组下4.浏览器设置代理,IP为本机网络IP5.启动录制,即可在线程组下看到录制到的接口HTTPS的录制上文启动录制后,Jmeter会生成证书文件:Jmeter导入证书Jmeter/bin/ApacheJMeterTemporaryRootCA.crt:默认密码password:浏...
2020-11-03 15:02:11
1507
原创 Jmeter模块详解(6)配置元件
目录HTTP请求默认值HTTP Cookie管理器HTTP信息头管理器参数化之【CSV数据配置文件】*参数化之【用户定义的变量】JDBC Connection ConfigurationHTTP请求默认值设置代理,可以让fiddler等工具抓到Jmeter的包:HTTP Cookie管理器可以手动配置,也可自动保存登录返回的cookie并提供给后续请求使用,每个线程组独立一个互不相干用法一:添加即可无需配置,添加后可自动管理使用co...
2020-11-03 14:53:19
261
原创 Jmeter模块详解(5)后置处理器
目录JSON提取器(JSON Extractor)边界提取器(Boundary Extractor)正则表达式提取器(Regular Expression Extractor)*本文部分图片来自网络取样器之后执行,后续操作的子件集合,对请求响应做一些处理,或者抓取响应数据,提取变量方便后续调用或断言等JSON提取器(JSON Extractor)如图要抓取接口的两个返回json值:配置如下:· variable names:变量...
2020-10-29 15:44:23
571
原创 Jmeter模块详解(4)前置处理器
目录参数化之【用户参数】*取样器之前执行,对请求参数或请求规则进行处理参数化之【用户参数】*手动添加变量名(key)及用户值(value),用户即变量的值,n个用户对应变量的n个值:如图引用变量:*该参数化方法似乎可以让一个线程多次迭代都使用同一组数据...
2020-10-29 15:39:46
434
原创 Jmeter模块详解(3)监听器
目录聚合报告汇总报告查看结果树保存响应到文件Save Responses to a file后端监听器Influxdb监听+Grafana可视化:用表格查看结果Active Threads Over Time活动线程曲线监听器比较耗费测试机资源,越少越好聚合报告聚合报告参数详解:1. Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值2. #Sam..
2020-10-29 15:37:04
775
原创 Jmeter模块详解(2)取样器Sampler
目录HTTP请求Http请求主要参数详解:Post的multipart/form-data文件上传请求:GET请求路径及参数填写方式(Jmeter5.1.1):FTP请求JDBC Request查询参数参数化:结果集对象变量的调用:返回数据写入本地文件:Debug Sampler(调试取样器)WebSocket SamplerHTTP请求Http请求主要参数详解:1.Web服务器协议:向目标服务器发送HTTP请求协议,可以是HTT.
2020-10-29 14:28:59
1433
原创 Jmeter模块详解(1)测试计划&线程组
目录测试计划Test Plan线程用户Threads Users线程组Thread GroupsetUP线程组tearDown线程组Stepping Thread Group梯度递增线程组Ultimate Thread Group梯度自由线程组测试计划Test Plan独立运行每个线程组:默认为多线程组并行运行,勾选则依顺序运行;(setUP和tearDown线程组依旧比普通线程组优先或最后执行)库文件:可导入jar包,如数据库驱动jar包线...
2020-10-29 12:07:37
771
原创 Jmeter安装及使用教程
安装需要组件JDK1.8以上 apache-jmeter-5.1.1安装过程JDK安装见网络资料 Jmeter包安装:在官网http://jmeter.apache.org/下载apache-jmeter-5.1.1.zip,解压即可用。 环境变量配置(参考):在系统变量框,点击“新建”,建立一个变量:JMETER_HOME,值为你解压的jmeter安装路径。配置classpath变量,没有的话也要按照上面步骤进行新建,有的话直接进行选中,点击编辑即可。变量值固定为:%JM...
2020-10-28 18:30:49
1724
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人