性能基础知识学习之二---代理,参数化

Posted mawenqiangios

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能基础知识学习之二---代理,参数化相关的知识,希望对你有一定的参考价值。

一,代理录制

  可以解决录录制时脚本是空的问题或者录制时浏览器打不开等问题

 

代理录制三步设置:

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

以上是关于性能基础知识学习之二---代理,参数化的主要内容,如果未能解决你的问题,请参考以下文章

性能基础知识学习之三---关联

Java学习之图形化界面(Swing基础)

Vuejs2.0学习之二(Render函数,createElement,vm.$slots,函数化组件,模板编译,JSX)

深度学习之模型压缩

性能基础知识学习之六---socket接口测试

设计模式学习之代理模式学习