• Jmeter的属性和变量


    jmeter的属性和变量可以简单理解为编程里面的全局变量和局部变量。属性是全局可见,可以跨线程组传递调用,而变量基本上只能存在于一个线程组中(在测试计划定义的变量也是可以跨线程组传递的)。同线程组内的数据传递一般用变量,例如,存放一个临时的过程值。多个进程组共用的一般用属性,例如,登录操作的session值需要传给其他线程组用,避免每个线程组都重复登录。

    属性的创建和赋值及访问方法如下:

    1.创建一个属性并赋值:

    方式一:使用beanShell的内置对象props,props.put("属性名","属性值");

    方式二:${__setProperty(cookie3,${COOKIE_session})};

    方法二是通过函数setProperty创建属性(jmeter一般通过${__函数名(参数)}的方式调用函数)。cookie3表示待创建的属性名称,第二个参数表示将要赋予的属性值。

    注:setProperty函数的属性名和属性值参数无需带引号,否则引号会被jmeter当做属性名或者属性值的一部分。例如,${__setProperty(“cookie3”,${COOKIE_session})} 执行后会创建一个名为“cookie3”的属性而不是cookie3属性,并且属性名和属性值两个参数间不能存在空格,否则这个空格会被认为是属性值的一部分赋值给属性。

    2.在其他线程组访问该属性:

    方法一:通过函数${__P(属性名)}进行读取;

    方法二:通过函数${__property(属性名)}进行读取;

    方式三:使用BeanShell内置对象获取props.get("属性名");

    注:若属性是通过变量进行赋值的,例如,${__setProperty(session,${cookie})},此时跨线程组且在BeanShell脚本中使用上面方法读取session属性时,读取到的值为“${cookie}”,而不是${cookie}对应的变量值(但是在同一线程组读取session属性则能正确读取变量值,可能原因:猜测是跨线程组访问属性时,读取不到${cookie}导致的,毕竟变量无法跨线程组传递,在测试计划中定义的变量除外)。不过在jmeter的一些控件中,跨进程组的情况下是可以直接读取到通过变量赋值的属性,例如http cookie管理器、用户定义的变量控件等。

    变量的创建和赋值及访问:

    1.创建一个变量并赋值:

    方式一:在jmeter提供的控件中创建;

    方式二:使用vars对象在脚本中创建,vars.put("变量名","变量值");

    2.访问变量:

    方式一:${变量名}

    方式二: vars.get("变量名")

  • 相关阅读:
    《构建之法》阅读有疑 与 个人Week1作业
    版本管理和项目管理软件浅谈
    [2019BUAA软工助教]第0次个人作业
    [2017BUAA软工助教]博客格式的详细说明
    [2017BUAA软工助教]收集个人信息
    最长英文单词串题目分析
    蓝桥杯PREV-11:横向打印二叉树
    day2
    冯如杯day1
    个人阅读作业
  • 原文地址:https://www.cnblogs.com/wuzm/p/10949728.html
Copyright © 2020-2023  润新知