lr参数化 mysql_Loadrunner 参数化&参数化策略&参数化mysql

参数化的意义不再赘述,参数化有两种情况:

1.后台(应用程序和数据库)对请求里的参数值限制了唯一性,说白了就是功能里要求的不能重复的参数,如果有这类唯一性校验的参数就需要参数化;

2.避免因数据库查询缓存而导致性能测试结果的失真;

这里的数据库查询缓存是指在该条请求之前,数据库已经有该条请求结果数据存在缓存里,当在此请求时,数据库首先会去缓存里找要执行的查询sql,找到了直接就返回了数据,不必要后面很多方所得操作;

显然这种情况下的性能执行结果要比没有缓存的结果快的多,所以存在性能结果失真的问题。,孤儿我们要参数化,请求不同的数据。

关于数据库的sql执行原理,这里不再赘述,以后在性能调优的时候再研究,暂时参考:http://blog.csdn.net/wanghjbuf/article/details/50792970

3.当参数不是一个常量,不同情况下值有变化,比如IP地址,就可以参数化,当IP变了后我改下参数就可以,没必要每次去修改脚本里的地址,便于维护代码。

参数化又有不同的方法,基本都大同小异,在参数化之前可以思考下,怎样降低参数化操作的可能性,可以围绕上述说的几点:1.测试的时候取消数据库和应用程序的唯一性校验;2.测试的时候关闭数据库的缓存功能。

这里介绍两种,一种是直接边界参数,还有一种是操作数据库,从数据库里导入数据。

下面主要介绍多列参数一一对应时的参数化,比如这里需要参数化四个参数,这四个参数是一一对应的:用户名、密码、确认密码、邮箱,参数化步骤如下:

1.选中需要参数化的对象,右键,点击【Replace with a new parameter】

fb37cf27da0484be0f2425c47966c0ed.png

2.点击【browser】,在脚本目录下新建params目录,用来存放这个脚本的所有参数化数据,选中目录后,点击【create table】

5b8a90089046eeb3fa4f88ef1604dbf2.png

3.点击【edit with notpad】打开记事本,在记事本里输入参数(换行分割),关闭记事本,关闭参数化属性,点击【OK】,这样username就参数化好了

358b6e9eb4c552b81b62d8eced7bdca7.png

4.选中密码,重复上述步骤1,进入参数属性页面,选中刚才创建好的Newparam文件,点击【add colum】,点击【OK】

d495d2f4c9f7af61d5c1fd1e7fab66c4.png

5.点击【edit with notpad】打开记事本,逗号后面输入密码参数,保存关闭记事本,关闭参数属性,点击【OK】

0ad3a5548ed7aa113d2d15f77f5d03c1.png

确认密码、邮箱同步骤五,都创建好后我们来看下参数化策略;

Select next row【选择下一行】

1245ba310ae8899eecc76a7891b2dc26.png

1.顺序(Sequential):按照参数化的数据顺序,一个一个的来取。

2.随机(Random):参数化中的数据,每次随机的从中抽取数据。

3.唯一(Unique):为每个虚拟用户分配一条唯一的数据

Update value on【更新时的值】

4c028bbfee99067d63e0e7389d9ea560.png

每次迭代(Each iteration) :每次迭代时取新的值,假如50个用户都取第一条数据,称为一次迭代;完了50个用户都取第二条数据,后面以此类推。

每次出现(Each occurrence):每次参数时取新的值,这里强调前后两次取值不能相同。

只取一次(once) :参数化中的数据,一条数据只能被抽取一次。(如果数据轮次完,脚本还在运行将会报错)

组合起来就有9种策略,如下:

Select Next Row

【选择下一行】

Update Value On

【更新时的值】

Replay Result

【结果】

顺序(Sequential)

每次迭代(Each iteration)

结果:分别将15条数据写入数据表中

功能说明:每迭代一次取一行值,从第一行开始取。当所有的值取完后,再从第一行开始取

如:如果参数化文件中有15条数据,而迭代设置为16次,那执行结果中,参数化文件第一行的数据有两条

顺序(Sequential)

每次出现(Each occurrence)

结果:分别将15条数据写入数据表中

功能说明:每迭代一次取一行值,从第一行开始取。当所有的值取完后,再从第一行开始取

如:如果参数化文件中有15条数据,而迭代设置为16次,那执行结果中,参数化文件第一行的数据有两条

顺序(Sequential)

只取一次(once)

结果:表中写入15条一模一样的数据。

功能说明:每次迭代都取参数化文件中第一行的数据。

随机(Random)

每次迭代(Each iteration)

结果:表中写入15条数据,但可能有重复数据出现

功能说明:每次从参数化文件中随机选择一行数据进行赋值

随机(Random)

每次出现(Each occurrence)

结果:表中写入15条数据,但可能有重复数据出现

功能说明:每次从参数化文件中随机选择一行数据进行赋值

随机(Random)

只取一次(once)

结果:表中写入15条相同数据

功能说明:第一次迭代时随机从参数化文件中取一行数据,后面每次迭代都用第一次迭代的数据。

唯一(Unique)

每次迭代(Each iteration)

自动分配块大小

结果:分别将15条数据写入数据表中

功能说明:第一次迭代取参数化文件中的第一条数据,第二次迭代取第二条数据,以此类推。

注:如果设置迭代次数为16次。结果:在执行第16次迭代时会抛异常,异常日志可在LoadRunner的回放日志(replayLog)中看到。

唯一(Unique)

每次出现(Each occurrence)

步长为1

结果:分别将15条数据写入数据表中

功能说明:第一次迭代取参数化文件中的第一条数据,第二次迭代取第二条数据,以此类推。

注:如果设置迭代次数为16次,而参数化文件中只有15条数据,明显数据不够。此时可以设置“when out of values”属性来判断当数据不够时的处理方式

Abort Vuser:中断虚拟用户

Countinue in a cylic manage:循环取参数化文件中的值,即:当参数化文件中的值取完后又从参数化文件的第一行开始取值。

Countinue with last value:继续用最后一条数据

唯一(Unique)

只取一次(once)

结果:表中写入15条相同数据

功能说明:每次都取参数文件中的第一条数据进行赋值

综上所述,我们这里的注册需要每次的数据都不一样,那么我们就选第7中策略,Unique+Each iteration,用户一第一次迭代取参数化文件中的第一条数据,第二次迭代取第二条数据;用户二第一次迭代取参数化文件中的第三条数据,第二次迭代取第四条数据,以此类推。当迭代次数大于参数化数据时会报错,设置如下:

Tips:因为这里,每个迭代内值调用了一次参数,所以选Each iteration(每个迭代),如果这个迭代里调用两次参数,那么需要选(Each occurrence),意思是每次迭代里的每次参数都需要不一样。

fa4c81aa5353bd5eaa0f1e746e2e0f66.png

接下来介绍下从数据库里导入参数,因为sql server百度里已经有很多介绍,这里不再赘述,主要讲下mysql,mysql的数据库驱动需要自己安装,这里给个路径,大家上官网上下就行:

https://dev.mysql.com/downloads/connector/odbc/

c20b7e91e862c10c4953c7d8377ff860.png

下载好后按默认的设置安装完成即可,这里我们拿登录举例,我们直接从数据库里查询到用户名作为参数。

1.参照上面的第一步,进入参数属性页面,依次按下图所示点击

76c160cd2a5eaa7a030af96ce036c8aa.png

2.继续依次按下图所示点击

1dc07cf6882cfc3c636a748501a2c66d.png

3.选中刚才安装的mysql驱动,点击下一步,点击完成

7e40158706e332095fb301848f908937.png

4.数据库信息如下填写,测试成功后,点击【OK】,【确定】,知道回到步骤五的界面

a737a1d90ef92bb6ddf2c78a96d5819c.png

5.sql中输入查询语句,点击【finish】后,参数化就成功了

69f41725bcdfea534a977c0aa23f1163.png

4e36a2f1a0cd5cf8b6c0187a3c8dcd55.png

以上就是鄙人对参数化的粗浅认识,如若有不妥之处还望指正,感谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目:使用AngularJs编写的简单 益智游戏(附源代码)  这是一个简单的 javascript 项目。这是一个拼图游戏,也包含一个填字游戏。这个游戏玩起来很棒。有两个不同的版本可以玩这个游戏。你也可以玩填字游戏。 关于游戏 这款游戏的玩法很简单。如上所述,它包含拼图和填字游戏。您可以通过移动图像来玩滑动拼图。您还可以选择要在滑动面板中拥有的列数和网格数。 另一个是填字游戏。在这里你只需要找到浏览器左侧提到的那些单词。 要运行此游戏,您需要在系统上安装浏览器。下载并在代码编辑器中打开此项目。然后有一个 index.html 文件可供您修改。在命令提示符中运行该文件,或者您可以直接运行索引文件。使用 Google Chrome 或 FireFox 可获得更好的用户体验。此外,这是一款多人游戏,双方玩家都是人类。 这个游戏包含很多 JavaScript 验证。这个游戏很有趣,如果你能用一点 CSS 修改它,那就更好了。 总的来说,这个项目使用了很多 javascript 和 javascript 库。如果你可以添加一些具有不同颜色选项的级别,那么你一定可以利用其库来提高你的 javascript 技能。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值