• 性能测试培训day2


    上节课

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

    实施: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去定义要放在语句块(大括号的)最开始,有点麻烦。

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

  • 相关阅读:
    GS 原理及破解 《0day安全》
    Windows 2000 栈溢出 利用异常
    windows2000 堆溢出 利用原理
    数据类中引用virtual
    DevExpress 程序运行后 layoutView 卡片大小发生变化
    DevExpress 标题栏添加搜索功能
    DevExpress 关于alertControl 图片显示
    DevExpress 关于alertControl 改变其大小
    DevExpress GridControl 选择整行被选单元格不变色的设置
    DevExpress 在使用Ribbon皮肤时标题栏不变化的原因
  • 原文地址:https://www.cnblogs.com/revo/p/8685899.html
Copyright © 2020-2023  润新知