上节课

性能测试,多线程、协议、场景

实施:1,脚本开发 运行  排错(看回放,然后view-test_results,看业务)

参数化、关联、检查点、事务、思考时间、集合点

参数化:不做参数化的话,目的为了xx实现和模拟真实场景,难的是构造数据

一、web开头的函数只能web使用,不能其他协议使用

lr开头的是通用的函数

二、参数化做法:点右键--“replace with parameter”

如果迭代次数大于行数会出错的

是不太适合用参数化去做脚本注册的(读文件的方式),如果记事本有五行,后面一行为空,那么前五次成功,后面失败了

参数化的时候,每个三种,九种组合

取值方式  select next row:sequential顺序取值(顺序点名) random随机取值  unique 唯一(意思是更新的时候这个值不能再出现了)

更新方式 update value on:each iteration迭代更新(一天一换人,发生新的迭代才更新)  each accurrence 执行时遇到参数就更新  once  第一次更新就不变了

when out of values:次数超范围,Abort Vuser终止用户报错No more unique values,

三、controler里面去的时候有100个用户取一份数据怎么取值??

可以用simulate parameter按钮去模拟

Number of Vusers用户数5个

Number of iterations to run:迭代6次

每个用户都顺序跑一次参数,不适合注册

做登录测试的时候,也不适合,因为都要跑一次都要登录,会重复

Allocate

Automatically自动分配,快的先上,不容易控制

Allocate手工控制,?values for each vuser  每个用户分配多少个值  适合Unique+Each iteration的方式(注册)

例如100000个账号用50个用户去跑,每个用户分配2000个账号

"Unique+Once"多用户登录的时候,每个用户之间取的值不一样,但是每个用户迭代的脚本每次用的值都一样

构造数据的时候,用户名密码不一样:select column  1/2  取的同一个文件的不同列

用户名"random + each iteration"  密码 same line as username

参数名

-----------------------------

username,password

abc1,123222

admin,admin

----------------------------

第二种方式:从正式环境数据库里面取用户名+密码,不用造数据了

要用第三方软件连接数据库: 数据库上要授权允许远程访问

grant all previliges on *.*  to user1@'%'  identified by  "user25";    (*.* 数据库.所有对象,'@'是所有地址)

grant all privileges on *.* to 'root'@'%';    root用户无密码

datawizard--spacial SQL..--create--机器数据源

file format Column 两列数据的分隔符逗号或者星号。select username,username from pre_common_member

------------------------

选哪个模块  “..........fid={fid}”  "random + each iteration"模式

---------------------跟踪,可以知道在哪个模块发帖

改运行时参数

extended log --Parameter substitution打钩

回放之后可以在replay log里面可以一目了然的看到

----------

注意:现在发帖还是在41下面发的

要把41右键replace all 要把所有的41替换成{fid}

--构造帖子的标题和内容,放入MySQL新库新表里面-

数据类型与   "desc pre_form_post;"一致

用datafactory构造数据到data.dat文件里

------随机发帖子-------帖子编号难以获取

如果想保存服务器返回的数据其中一部分怎么做????????

第一种:在返回的数据里面去查找(所有的票出了,在里面找要的)

第二种:先登记要什么数据,返回之后保存(先预定票,出票的时候自动)这种比较好,登记必须在请求之前去做,

对于那些文字要变的,记得位置不变,参照物不变。设参照物,可以找到多个,也可能没有,没有的时候要报错。

“登记”这个事怎么写???“登记”后只能从紧挨着的后面一个请求返回的数据里面去找。

web_reg_save_param  函数:把服务器端返回的数据按条件保存到指定的参数里面,类似的还有三个函数 web_reg_save_param_ex ,_regexp, _xpath,

insert --new step

web_reg_save_param("message",
"LB=second.html\">",
"RB=<",
LAST);
//里面的引号要转义

帖子里面的模块,可以把全部fid保存下来。需要设置   "Save Data to a Parameter" 选择 instance : All

(instance里面要嘛是数字要嘛是ALL)要嘛 把服务器端满足条件的全部保存,要嘛只取其中一个(假如服务器返回10个,写个3意思是返回第三个)

fids_1=2、fids_2=41、...、fids_count=6可以用函数随机:  lr_save_string(lr_paramarr_random("fids"),"fid")  用的时候: fid={fid}

注意:尽量不要用int a =1 这样去定义。而是用参数:lr_save_string这种写法,int去定义要放在语句块(大括号的)最开始,有点麻烦。

并且参数的作用域是全局的,而变量的作用域是局部的

性能测试培训day2的更多相关文章

  1. 性能测试培训:帮你定位 Linux 性能问题的 18 个命令以及工具

    性能测试培训:帮你定位 Linux 性能问题的 18 个命令以及工具 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在popte ...

  2. 性能测试培训:tomcat性能调优方法

    性能测试培训:tomcat性能调优方法   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loadrunner ...

  3. 性能测试培训:Ajax接口级性能测试之jmeter版

    性能测试培训:Ajax接口级性能测试之jmeter版   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest认为工具 ...

  4. 性能测试培训: 监控CPU之python

    性能测试培训: 监控CPU之python 作为一名测试开发工程师,开发脚本是为了测试服务的,我们在手里没有性能监控工具的情况下,我们会自己来进行开发脚本完成监控任务.下面是python监控cpu '' ...

  5. 性能测试培训:WebSocket协议的接口性能之Jmeter

    性能测试培训:WebSocket协议的接口性能之Jmeter poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.poptest测试开 ...

  6. 性能测试培训:批量执行Jmeter脚本之ant调用

    性能测试培训:批量执行Jmeter脚本之ant调用   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的load ...

  7. 性能测试培训:分布式测试之jmeter

    性能测试培训:分布式测试之jmeter   在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter ...

  8. 性能测试培训:定位jvm耗时函数

    性能测试培训:定位jvm耗时函数   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:90882 ...

  9. 性能测试培训:sql server性能测试分析局部变量的性能影响

    poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loadrunner的培训中,为了提高学员性能优化的经验,加入了 ...

随机推荐

  1. sql sever使用sql语句查询数据, 分割某字段改为多行,其它字段保持不变

    如表中有A.B.C三个字段,数据如下: A         B       C 1,2      3       4 要求查询结果: A         B       C 1         3  ...

  2. python中threading模块中的Join类

    join类是threading中用于堵塞当前主线程的类,其作用是阻止全部的线程继续运行,直到被调用的线程执行完毕或者超时.具体代码如下: import threading,time def doWai ...

  3. 【同步工具类】CountDownLatch

    闭锁是一种同步工具类,可以延迟线程的进度直到其达到终止状态. 作用:相当于一扇门,在到达结束状态之前,这扇门一直是关闭的,并且没有任务线程能够通过,当到达结束状态时,这扇门会打开并允许所有的线程通过, ...

  4. PHP arrray_filter(), array_map()区别与应用

    array_filter()用回调函数过滤数组中的元素.依次将数组中的元素传递给回调函数,如果回调函数返回true,则被过滤的元素作为返回数组的元素,并最终一起返回.数组的键名保持不变.array_m ...

  5. #define及其用法

    #define     在#define中,标准只定义了#和##两种操作.#用来把参数转换成字符串,##则用来连接前后两个参数,把它们变成一个字符     串. #include<stdio.h ...

  6. _bzoj1026 [SCOI2009]windy数【数位dp】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1026 数位dp果断记忆化搜索,代码量少~ 程序里我用11代表前导零. #include &l ...

  7. Person p = new Person("zhangsan",20);该句话都做了什么事情?

    1,因为new用到了Person.class.所以会先找到Person.class文件并加载到内存中.2,执行该类中的static代码块,如果有的话,给Person.class类进行初始化.3,在堆内 ...

  8. android:fillViewport="true"让ScrollView内的view强行match_parent

    当你想让一个高度值不足scrollview的子控件fillparent的时候,单独的定义android:layout_height="fill_parent"是不起作用的,必须加上 ...

  9. HDU 5996 博弈

    http://acm.hdu.edu.cn/showproblem.php?pid=5996 博弈论待补. 这题变化了一下,因为注意到奇数层的东西(层数从1开始),对手可以模仿地动,那就相当于没动. ...

  10. libtool版本过新的问题

      安装过程中出现: libtool: Version mismatch error. This is libtool 2.4.2, but the libtool: definition of th ...