Day16.参数传递(token传递,接口关联等)

文章目录

    • 1. 传递变量说明
      • 1.1 传参方式
        • 1.1.1 内置变量
        • 1.1.2 函数助手
      • 1.2 传参形式
        • 1.2.1 同线程组
        • 1.2.2 跨线程组
    • 2.练习说明
    • 3.作业场景
    • 4.示例脚本
      • 4.1 图片示例
      • 4.2 脚本示例

接口信息说明:
用户管理模块
    登录接口
        api:post
        method:post
        request data:
            {
                "loginName":"IDO",
                "passwd":"123"//base编码
            }
    退出接口:
        api:get
        method:get
    添加用户接口:
        api:post
        method:post
        headers:{
           "Content-Type":"application/json",
           "token":""
        }
        request data:
            {
                "login_name":"IDO",
                "phone":"13100000000",
                "real_name":"老徐",
                "token":""
            }
    编辑用户接口
        api:put
        method:put
        headers:{
           "Content-Type":"application/json",
           "token":""
        }
        request data:
            {
                "login_name":"IDO",
                "phone":"13100000000",
                "real_name":"老徐",
                "token":""
            }
博文管理模块:
    添加博文接口:
        api:post
        method:post
        headers:{
           "Content-Type":"application/json",
           "token":""
        }
        request data:
            {
                "blog_name":"21天打卡",
                "bolg_title":"Jmeter打卡之Day16",
                "blog_details":"21天打卡",
                "token":""
            }

1. 传递变量说明

1.1 传参方式

1.1.1 内置变量

//同线程组
vars :操作 jmeter 变量,它是测试用例与 BeanShell 交互的桥梁,常用方法:

vars.get(String key):从jmeter 中获得变量值
vars.put(String key,String value):数据存到 jmeter 变量
//跨线程组
props :操作 jmeter 属性,该变量引用了 JMeter 的配置信息,可以获取Jmeter
的属性,它的使用方法与 vars 类似,但是只能 put 进去 String 类型的值,而不能是一个对象。

props.get("START.HMS");START.HMS 为属性名,在jmeter.properties 中定义
props.put("PROP1","1234");

1.1.2 函数助手

		声明全局变量:
			${__setProperty(newtoken,${token},)}
		引用全局变量
			${__P(newtoken,)}

1.2 传参形式

1.2.1 同线程组

//示例1.beanshell语句
String   str =vars.get("loginName");//获取变量loginName
vars.put("key",str);//抛出做线程组内变量
//其他
默认的变量都在本线程组下使用

1.2.2 跨线程组

//示例1.beanshell语句
String   str =vars.get("token");
props.put("newToken",str);
//示例2.函数助手
${__setProperty(newtoken,${token},)}
//跨线程组引用变量的方式
${__P(newtoken,)}//只需要变量名就可以

2.练习说明

  • httpbin.org不提供登录/退出机制,目前我们用上述的模拟登录接口.
  • token就使用loginName这个字段来模拟,大家在自己公司使用拿正常的token
  • 传递参数需要先生成参数,像token这些的,需要后置处理器中的一个组件
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PHLtD9Fg-1592732280042)(https://imgfigure1.oss-cn-hangzhou.aliyuncs.com/20200621003935.png)]

3.作业场景

  • 根据上面提供的接口信息进行模拟测试,其中,需要将登陆之后的token传到信息头部和其他线程组的参数当中。

4.示例脚本

4.1 图片示例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QRAkdfqn-1592732280044)(https://imgfigure1.oss-cn-hangzhou.aliyuncs.com/20200621003016.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kfKBW4lH-1592732280045)(https://imgfigure1.oss-cn-hangzhou.aliyuncs.com/20200621003343.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7TisaJDI-1592732280049)(https://imgfigure1.oss-cn-hangzhou.aliyuncs.com/20200621003528.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8yvhdUSD-1592732280052)(https://imgfigure1.oss-cn-hangzhou.aliyuncs.com/20200621003742.png)]

4.2 脚本示例

链接:https://pan.baidu.com/s/1u48r1FErTmujQ4fAf2LTQg 
提取码:ltqj

你可能感兴趣的:(日常工具)