loadrunner12.55:登录功能--手动关联【示例】
-- 功能 示例 登录 关联 手动
2023-09-14 08:59:26 时间
示例1:
该平台登录过程及脚本实现过程如下:
1、通过“http://10.248.57.226:9010/user-center/user-info/publicKey?machineFlag=1&randomStr=1395644086717349888”请求获取响应报文中的publicKey及randomStr字段;(脚本保存publicKey字段到文件publicKey.txt中,同时保存randomStr字段为参数{ResprandomStr})
2、根据获取的publicKey生成用户名和密码的密文;(脚本通过批处理文件getEncrypt.bat调用Java应用生成密文并分别保存至文件userName.txt和passwd.txt中,通过lr_read_file()函数读取密文到参数{name}和{passwd}中)
3、根据生成的密文发起请求http://10.248.65.91:8010/user-center/user/login?machineFlag=1&pwd={passwd}&userName={name}&randomStr={ResprandomStr}完成用户名和密码验证,并返回重定向URL及授权token;(脚本使用参数{name}、{passwd}、{ResprandomStr}发起请求获取响应头中的location字段,即重定向URL及token)
4、凭借token和重定向URL开展后续会话;
脚本调用JAVA应用的批处理文件 getEncrypt.bat :
@echo off set filepath=%~dp0 call cd %filepath% call javac -encoding UTF-8 Encrypt2.java call java Encrypt2 ::pause
登录脚本:
/* ------------------------------------------------------------------------------- Script Title : Script Description : Recorder Version : 911 ------------------------------------------------------------------------------- */ vuser_init() { FILE *fp; char mytoken[1024]="Bearer "; char filepath[]="D:\\03.LR_TraningCourse\\DaQianDuan"; char command[1024]; web_set_user("user_1", "123456", "10.248.57.226:9010"); web_url("login", "URL=http://10.248.57.226:9010/login", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t13.inf", "Mode=HTML", EXTRARES, "Url=/static/img/login_logo.142e525b.png", ENDITEM, LAST); //获取响应中的publicKey字段值 web_reg_save_param("ResppublicKey", "LB=publicKey\":\"", "RB=\",\"machineFlag", "Search=Body", LAST); //获取响应中的randomStr字段值 web_reg_save_param("ResprandomStr", "LB=randomStr\":\"", "RB=\"},\"code", "Search=Body", LAST); web_url("publicKey", "URL=http://10.248.57.226:9010/user-center/user-info/publicKey?machineFlag=1&randomStr=1395661090648064000", "Resource=0", "RecContentType=application/json", "Referer=http://10.248.57.226:9010/login", "Snapshot=t14.inf", "Mode=HTML", LAST); sprintf (command, "d: & cd %s & javac -encoding UTF-8 Encrypt2.java & java Encrypt2 publicKey%s.txt",filepath,lr_eval_string("{UserID}")); system(command); lr_output_message(command); //分别读取Java应用加密用户名和密码生成的密文,并分别保存到参数name和passwd中 lr_read_file("D:\\03.LR_TraningCourse\\DaQianDuan\\userName.txt","name",0); lr_read_file("D:\\03.LR_TraningCourse\\DaQianDuan\\passwd.txt","passwd",0); web_set_max_html_param_len("1024"); //web_save_header(RESPONSE, "ResponseHeader");// RESPONSE保存响应的头信息 web_reg_save_param("location",//获取响应头中Location字段,即重定向URL "LB=Location:", "RB=\r\nContent-Length", "Search=Headers", LAST); web_reg_save_param("Token",//获取响应头中token字段内容,用于后续授权认证 "LB=token=", "RB=\r\nContent-Length", "Search=Headers", LAST); web_reg_save_param("responseBody", "LB=", "RB=", "Search=Body", LAST); web_url("login_2", "URL=http://10.248.65.91:8010/user-center/user/login?machineFlag=1&pwd={passwd}&userName={name}&randomStr={ResprandomStr}", "Resource=0", "RecContentType=text/html", "Referer=http://10.248.57.226:9010/login", "Snapshot=t15.inf", "Mode=HTML", LAST); strcat(mytoken,lr_eval_string("{Token}")); lr_output_message("%s",mytoken); web_add_auto_header("Authorization",mytoken);//将token值添加到请求头的Authorization字段中 web_url("getSystemDetailList", "URL=http://10.248.57.226:9010/user-center/user/getSystemDetailList?userName=user_1&loginUrl=http:%2F%2F10.248.57.226:9010", "Resource=0", "RecContentType=application/json", "Referer=${location}", "Snapshot=t16.inf", "Mode=HTML", EXTRARES, "URL=/static/img/ch.1bfbffa1.png", "Referer=http://10.248.57.226:9010/", ENDITEM, "URL=/static/img/user_p.607a8ef8.png", "Referer=http://10.248.57.226:9010/", ENDITEM, "URL=/static/img/down.cfed1b07.png", "Referer=http://10.248.57.226:9010/", ENDITEM, LAST); web_url("10.248.57.226:9020", "URL=http://10.248.57.226:9020/", "Resource=0", "RecContentType=text/html", "Referer=http://10.248.57.226:9010/U-C/", "Snapshot=t17.inf", "Mode=HTML", EXTRARES, "Url=http://10.248.57.226:9010/static/fonts/element-icons.535877f5.woff", "Referer=http://10.248.57.226:9010/U-C/", ENDITEM, LAST); web_url("10.248.57.226:9030", "URL=http://10.248.57.226:9030/", "Resource=0", "RecContentType=text/html", "Referer=http://10.248.57.226:9010/U-C/", "Snapshot=t18.inf", "Mode=HTML", LAST); web_custom_request("search", "URL=http://10.248.57.226:9010/user-center/user-info/search", "Method=POST", "Resource=0", "RecContentType=application/json", "Referer=http://10.248.57.226:9010/U-C/", "Snapshot=t19.inf", "Mode=HTML", "EncType=application/json;charset=utf-8", "Body={\"current\":1,\"size\":5,\"userInfoDTO\":{\"realName\":\"\",\"userName\":\"\",\"id\":\"\"}}", LAST); return 0; }
相关文章
- linux驱动开发--字符设备:添加文件指针偏移的功能
- Java异常--基本概念try...catch...finally
- 【昇腾学院】昇腾AI处理器软件栈--框架管理器(Framework)离线模型生成
- Unity5 新功能解析--GI(全局光)
- [Sass] Level 4: Extend -- Ex
- Centos7安装部署openstack--Networking 网络服务(控制节点)
- sql基础--怎样查询所有列数据
- 前端学习 -- Xhtml语法规范
- 日志服务(原SLS)新功能发布(10)--Logtail配置支持日志转换、过滤
- loadrunner12.55:登录功能--手动关联【示例】
- IQ测试集锦--智力PK
- 《安富莱嵌入式周报》第249期:2022.01.17--2022.01.23
- Eurkea,Ribbon和RestTemplate是如何结合到一起完成服务注册与发现功能的? --下
- 日志服务(原SLS)新功能发布(13)--Logtail支持自定义标识自动扩容机器组
- Atitit prgrmlan topic--express lan QL query lan表达式语言 目录 1. 通用表达语言(CEL)1 1.1. 8.2 功能概述1 1.2. Ongl
- Atitit 提升开发进度大方法--高频功能与步骤的优化 类似性能优化
- 日志服务(原SLS)新功能发布(14)--支持仅对指定键进行索引
- poj2299--B - Ultra-QuickSort(线段树,离散化)
- L3.linux命令每日一练 -- 第一章 Linux命令行简介
- 13.3 time--时间操作和转换功能
- 13.5 logging--Python灵活的日志功能
- Android OkHttp完全解析 --zz
- 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink--容错机制(ACK,RDD,基于log和状态快照),消息处理at least once,exactly once两个是关键