性能基础知识学习之二---代理,参数化
一,代理录制
可以解决录录制时脚本是空的问题或者录制时浏览器打不开等问题
代理录制三步设置:
1.lr录制选项设置代理
tools-recording optins-port mappint
terget server被测服务器地址 port端口号,默认80,有时候是8088,
traffic forwarding随便上输入一个不常见的端口号,比如 2355
2.lr录制选择代理的exe
lr录制自带的代理浏览器
3.ie开启浏览器代理 代理的端口号跟lr里设置的代理端口号一致
工具--Intetnet选项--连接--局域网设置
二,做参数化的意义
什么叫做参数化:把参数动态的使用数组里面的值
为了更加真实的模拟用户操作,但是在使用过程中的原因是:
1,应用程序做了唯一性校验
2,为了避免数据库的校验该值得唯一性
3,为了避免走缓存导致的数据失真
参数化步骤:
1.再脚本中选择要进行参数化的内容
2.右键--replace with a paramter
3.填写参数名.点击ok按钮后,所选择的需要参数化的部分变成了红色
4.选择open paramters list,在弹出的对话框中对将要参数化的值进行添加
5.当多个参数放在同一个文件时,注意文件之间的对应,并选择by name方式
首先先介绍一下数据取值方式和更新方法
1.select next row(选择下一行方法):
Sequential 默认 顺序的,按照参数化的数据顺序,从上往下一个一个的来取。
Random 随机取,参数化中的数据,每次随机的从中抽取数据。
Unique 唯一,唯一的向下取值,只能被用一次。
Same line as xxx ,和xxx列取同一行的值,(行相同)步调一致
例如:数据a b c d e f g ...,现有3个用户(甲乙丙)取值;循环2次。
A) 顺序方式:甲(a, b) 乙(a, b) 丙(a, b)
B) 唯一方式:甲(a, b) 乙(c, d) 丙(e, f)
如果是注册,采用唯一方式,用过了就不能再用,如果数据重复会报EOF
C) 对于单用户来说,顺序和唯一取值序列是相同的
2.Update value on: 更新方式
Each iteration 默认 每次迭代时取值 (常用)
Each occurrence 每次遇到该参数时取值
Once 取值仅一次,脚本运行过程中只取值一次值的是:一次选择,终身不变
3、When out of values: 选择Unique才需要考虑这个选项,数据不足时处理情况,表示取值越界后的处理方式
Abort Vuser 放弃虚拟用户,不再取值
Continue in a cyclic manner 以循环的方式继续,当参数化文件中的值取完最后一个值后,又从参数化文件的第一行开始取值。
Continue with last value 当参数化文件中的值取完最后一个值后,持续一直最后一个值 。4.
4.
各种组合情况下的取值,例如:参数化文件有10个数据分别是 1,2,3,4,5,6,7,8,9,10.现有1个用户取值,迭代次数为11次。
下面用一个例子说明参数化策略
脚本:
顺序:
第一种取值策略 顺序+每次迭代(迭代时才会触发值得变更条件)取值分析 触发值得变更条件是什么,触发值变更条件后怎么取值
随机:
唯一:
三.练习题
1.银行流水号 参数化
10个并发 跑 10分钟
1个用户跑---tps=10, 服务器tps无限大
1*10*10=100 10个用户每秒钟跑100个
100*10*60=60000的数据
一共10个用户60000/10=6000
2.银行流水号 参数化
10个并发 跑 10分钟
1个用户跑---tps=10, 服务器MAX(TPS)=50
1*10*10=100 10个用户每秒钟跑100个>MAX(tps)
但是服务器每秒只能处理50个,多的要下1秒进行处理
50*10*60=30000 服务器10分钟处理的请求
30000/10=3000
————————————————
原文链接:https://www.cnblogs.com/panpan0301/p/8605182.html