loadrunner之获取登陆接口中的token值及 LoadRunner数据更新与更新方式

Loadrunner获取登陆接口中的token值

 

登录后,服务器会生成token并返回给客户端,之后客户端与服务器交互的操作中,服务器程序会对比这个token,正确则允许操作,否则拒绝客户端请求。

在性能测试时,好多场景需要登录后才能操作,这时候就用到了登录时返回的token,如何获得token呢?

Loadrunner代码如下,需要注意的地方详见代码上方的备注:

===========================================

/*首先,怎么看接口返回值得内容,请参考另一篇文章《python之接口测试get接口》。假如我的接口返回值是{“return_code”:0,”error_code”:0,”error_msg”:”“,”current_user_id”:”21377”,”access_token”:”xxxxxxxxxxxxxxxxxx”}。此时我的查找目标是xxxxxxxxxxxxxxxxxx,它左边被“access_token”:”包裹,右边被“}包裹。*/

/*web_reg_save_param函数定义你要查找目标的左右边界,匹配的结果存在loginToken变量中,注意左边界“access_token”:”每个标点前要加转义符号,就变为了\”access\_token\”\:\”,右边界“}每个标点前加上转义符号,就变为了\”\},这很重要,否则你可能找不到你要的结果*/

web_reg_save_param(“loginToken”,

“LB=\”access\_token\”\:\”“,

“RB\=\”\}”,

LAST);

 

// 对登录添加事物,可以没有,看你喜好

lr_start_transaction(“login”);

web_url(“登录“,

“URL=http://192.168.1.99:8080/web/login?username=17800000006&password=000006&client_role=1”,

LAST);

lr_end_transaction(“login”, LR_AUTO);

 

    // 打印token值,此时token值存在了loginToken变量中,在后续的操作中你可以随意使用

lr_log_message(“user token is:%s”,lr_eval_string(“{loginToken}”));


——————————————————————————————————————————

更多请关注:FlyTester,关注技术的测试者

QQ群:456850134

web站:www.flytester.org

微信扫描二维码关注:








1.   Select next row 【选择下一行】:

1)顺序(Sequential):按照参数化的数据顺序,一个一个的来取,参数全部取完从头开始取。

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

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

                                            可设置取值的步长;

                                            参数全部取完,可设置:Abort Vuser:中断虚拟用户,Countinue in a cylic manage:循环取参数化文件中的值,即:当参数化文                    件中的值取完后又从参数化文件的第一行开始取值,Countinue with last value:继续用最后一条数据。

        问题:在vuser_init中的实现登录(用户名与密码参数化),vuser_Action中实现订票(迭代次数为2),vuser_end中实现退出,场景中设置2个虚拟用户。

         unique+each iteration: 则必须保证”用户名密码的参数个数=虚拟用户数*迭代次数“,否则运行场景会报错,最后运行结果为:第1个用户,第3个用户订票成功,第2个用户没有订票,查看日志发现,在Action迭代时用户名密码参数(虽然该参数在init中并不在Action中)也会进行更新。

       unique+each occurrence:是第1个用户,第2个用户订票。用户名密码的参数个数=虚拟用户个数即可。

       unique+once:是第1个用户,第2个用户订票。用户名密码的参数个数=虚拟用户个数即可。

2.Update value on【更新时的值】: 

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

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

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


            </div>

loadrunner 添加token关联

1、token是服务器返回的一个值,

用于验证身份。

因此需要在response body中查找第一次出现token的地方。

2、token是登录时候返回的,因此需要在登录的请求那里找。

3、切换到树图,找到响应的登录操作

这里写图片描述

3、添加关联之后,脚本中会增加一个语句,它出现在登录之前。

/Correlation comment - Do not change!Original value='48d5b44a89864d17b86509a201cc942c' Name ='CorrelationParameter_1'
    web_reg_save_param_ex(
        "ParamName=CorrelationParameter_1",
        "LB=:\"",
        "RB=\",",
        SEARCH_FILTERS,
        "Scope=Body",
        "RequestUrl=*/authentication*",
        LAST);
    web_submit_data("authentication",
        "Action=http://www.moojnn.com/mojingcsp/authentication",
        "Method=POST",
        "TargetFrame=",
        "RecContentType=application/json",
        "Referer=http://www.moojnn.com/user/login.html",
        "Snapshot=t3.inf",
        "Mode=HTML",
        ITEMDATA,
        "Name=username", "Value={userName}", ENDITEM,
        "Name=password", "Value=e10adc3949ba59abbe56e057f20f883e", ENDITEM,
        EXTRARES,
        "URL=http://pro.moojnn.com/lib/leaflet/leaflet.css?_d=1467120445822", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,
        "URL=http://pro.moojnn.com/css/icon/style.css?_d=1467120445822", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,
        "URL=http://pro.moojnn.com/css/common.css?_d=1467120445822", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,
        "URL=http://pro.moojnn.com/js/mjchart/theme/mjvi.css?_d=1467120445822", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,
        "URL=http://pro.moojnn.com/js/config.js", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,
        "URL=http://pro.moojnn.com/js/functions.js?_d=1467120445822", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,
        "URL=http://pro.moojnn.com/js/mjchart/mjvi.min.js?_d=1467120445822", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,
        "URL=http://pro.moojnn.com/js/common.js?_d=1467120445822", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,
        "URL=../static/js/csp.js?_=1467473737411", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,
        LAST);

    web_url("popup-help.html_2",
        "URL=http://www.moojnn.com/user/popup-help.html?from=http%3A%2F%2Fpro.moojnn.com%2Fprojects.html%23%2F%3FMoJing-Token%3D{CorrelationParameter_1}",
        "TargetFrame=",
        "Resource=0",
        "RecContentType=text/html",
        "Referer=http://pro.moojnn.com/projects.html",
        "Snapshot=t4.inf",
        "Mode=HTML",
        EXTRARES,
        "URL=http://hm.baidu.com/hm.js?177ebef2f9a9244c738b903eef680a83", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,
        "URL=http://z6.cnzz.com/stat.htm?id=1253524178&r=http%3A%2F%2Fwww.moojnn.com%2Fuser%2Flogin.html&lg=zh-cn&ntime=1467467462&cnzz_eid=1418985023-1467467462-http%3A%2F%2Fwww.moojnn.com%2F&showp=1366x768&p=http%3A%2F%2Fpro.moojnn.com%2Fprojects.html%23%2F%3FMoJing-Token%3D{CorrelationParameter_1}&t=&h=1&rnd=1141052232", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,
        "URL=http://pro.moojnn.com/mojing-server/user/login?MoJing-Token={CorrelationParameter_1}", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,
        "URL=http://hm.baidu.com/hm.gif?cc=0&ck=1&cl=24-bit&ds=1366x768&et=0&fl=22.0&ja=0&ln=zh-CN&lo=0&lt=1467473654&nv=0&rnd=1523982449&si=177ebef2f9a9244c738b903eef680a83&st=4&su=http%3A%2F%2Fwww.moojnn.com%2Fuser%2Flogin.html&v=1.1.26&lv=3", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,
        LAST);
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值