LoadRunner用户验证码和验证码使用脚本

2023-11-20

Action()
{

    //定义Md5变量用来存放使用md5加密后的字符串
	char Md5[33];

	//存放包含用户登录信息的URL
	char str[174];	

	//存放用户账户信息
	char str1[92];
	//存放当前时间
	int t1;

    int a;
	
	char Message[50];
	//把持续的秒数放入t1变量中
	t1=time();

	//把t1中存储的值赋值给time1变量
	lr_save_int(t1,"time1");

	//使用lr_eval_string函数获取变量的值,并把值赋值给str1变量
	strcpy(str1,lr_eval_string("account={code}.pt&appId=1002&code={code}&gameId=89&ip={用户IP}×tamp={time1}cb29fca01dbtk7a29np0lp59yl6hd258"));
	lr_output_message(str1);
	//把str1进行md5加密,并把加密完的字符串赋值给Md5变量
	GetMd5FromString(str1,Md5);
	//重新生成并包含sign”=“Md5中包含的值的URL字符串放入str变量中
	sprintf(str,"URL=http://{服务器IP}/api/Character/ValidateCode?account={code}.pt&appId=1002&code={code}&gameId=89&ip={用户IP}×tamp={time1}&sign=%s",Md5);

	//进行手动关联,获取动态信息,并把动态信息保存到Message变量中
	web_reg_save_param("Message", 
		"LB/IC=Message\":\"", 
		"RB/IC=\"", 
		"Ord=1", 
		"Search=Body", 
		"RelFrameId=1", 
		LAST);

    //开始验证事务
	lr_start_transaction("验证成功");
	lr_start_transaction("验证失败");

    //获取验证码数据包
	web_url("ValidateCode", 
		
		str,//获取验证码URL链接
		"Resource=1", 
		"RecContentType=application/xml", 
		"Referer=", 
		"Snapshot=t5.inf", 
		LAST);



    //使用lr_eval_string函数获取变量{Message}的值,并把值赋值给Message变量
	strcpy(Message,lr_eval_string("{Message}"));
	//输出Message信息
    lr_output_message(Message);

    //调用strcmp函数把Message中存储的值和“success”进行比较
	//把比较结果赋值给变量a
    a=strcmp(Message,"success");


    //判断a的值,如果a==0则“success”
	if (a == 0) 
	{

		//结束验证成功事务了,并自动设置事务状态(PASS or FAIL)
		lr_end_transaction("验证成功", LR_AUTO);

		//把持续的秒数放入t1变量中
		t1=time();

		//把t1中存储的值赋值给time1变量
		lr_save_int(t1,"time1");

	   //使用lr_eval_string函数获取变量的值,并把值赋值给str1变量
		strcpy(str1,lr_eval_string("account={code}.pt&appId=1002&code={code}&gameId=89&ip={用户IP}×tamp={time1}cb29fca01dbtk7a29np0lp59yl6hd258"));
		lr_output_message(str1);
		//把str1进行md5加密,并把加密完的字符串赋值给Md5变量
		GetMd5FromString(str1,Md5);
		//重新生成并包含sign”=“Md5中包含的值的URL字符串放入str变量中
		sprintf(str,"URL=http://{服务器IP}/api/Character/UseCode?account={code}.pt&appId=1002&code={code}&gameId=89&ip={用户IP}×tamp={time1}&sign=%s",Md5);

		//进行手动关联,获取动态信息,并把动态信息保存到Message变量中
		web_reg_save_param("Message", 
			"LB/IC=Message\":\"", //左边界开始为“Message“:””
			"RB/IC=\"",//右边界为““”
			"Ord=1", 
			"Search=Body", 
			"RelFrameId=1", 
			LAST);

		//开始使用事务
		lr_start_transaction("使用成功");
		lr_start_transaction("使用失败");

		//获取验证码数据包
		web_url("ValidateCode", 
			
			str,//获取验证码URL链接
			"Resource=1", 
			"RecContentType=application/xml", 
			"Referer=", 
			"Snapshot=t5.inf", 
			LAST);	



		//使用lr_eval_string函数获取变量{Message}的值,并把值赋值给Message变量
		strcpy(Message,lr_eval_string("{Message}"));
		lr_output_message(Message);

		//调用strcmp函数把Message中存储的值和“success”进行比较
		//把比较结果赋值给变量a
		a=strcmp(Message,"success");


		//判断a的值,如果a==0则“success”
		if (a == 0) {
			//结束使用成功事务了,并自动设置事务状态(PASS or FAIL)
			lr_end_transaction("使用成功", LR_AUTO);
		}
		else{
			//结束使用失败事务了,并自动设置事务状态(PASS or FAIL)
			lr_end_transaction("使用失败", LR_AUTO);
		}

	}

	else 
	{
		//结束验证失败事务了,并自动设置事务状态(PASS or FAIL)
		lr_end_transaction("验证失败", LR_AUTO);
	}


	return 0;
}

该脚本使用md5加密,需要使用md5.h文件

要在脚本中添加md5.h文件,globals.h文件

并且要在globals.h中添加“include “md5.h””




转载于:https://my.oschina.net/u/2291665/blog/885028

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LoadRunner用户验证码和验证码使用脚本 的相关文章

  • eclipse maven 导出项目依赖的jar包

    本文转自至 http blog csdn net andyliulin article details 46544555 一 导出到默认目录 targed dependency 从Maven项目中导出项目依赖的jar包 进入工程pom xm
  • Qt在windows和linux下使用默认浏览器打开设置的链接

    QString webstr http www baidu com 设置要打开的网页 bool openService QDesktopServices openUrl QUrl webstr 使用默认浏览器打开 if openServic
  • Testflight 添加外部测试人员

    内部测试人员 不需要提供所有的metadata 外部测试人员 为了使得外部人员可以测试app的预发布build 必须提供如下的metadata What to test App description Feedback email Mark
  • 利用Python读取MongoDB的数据

    近日在处理数据的时候遇到一个问题 数据存储在MongoDB数据库 如图1 而MongoDB模式自由 具有很大的灵活性 可以把不同结构的文档存储在同一个数据库里 即表的字段不是完全固定的 当某个字段有值时就会显示该字段 而当该字段没有值时就不
  • 3.git 将本地仓库推到远程

    1 创建一个本地仓库 git init 2 把文件添加到版本仓库中 git add 3 生成提交记录 git commit m git init 4 关联到远程库 git remote add origin 你的远程库 5 获取远程库与本地
  • jsoncpp封装和解析字符串、数字、布尔值和数组

    使用jsoncpp进行字符串 数字 布尔值和数组的封装与解析 1 下载jsoncpp的代码库 百度网盘地址 http pan baidu com s 1ntqQhIT 2 解压缩文件 jsoncpp rar unzip jsoncpp ra
  • 解决BeanNotOfRequiredTypeException办法(@Autowired和@Resource注解的不同)

    1 错误信息 org springframework beans factory BeanNotOfRequiredTypeException Bean named aisleService must be of type com gdie
  • Nmap源码分析(主机发现)

    Nmap源码分析 主机发现 2012年8月9日 Nmap在进行真正的端口扫描之前 通常需要确定目标主机是否在线 主机发现过程 以免发送大量探测包到不在线的主机 主机发现作为Nmap的基本功能之一 用户也可以单独运用 例如 仅仅需要确定局域网
  • 盘点3款超好用的免费录屏软件,快来看!

    在现代数字化社会中 录屏软件成为了各行各业中必备的工具之一 用于记录操作步骤 制作教程 分享游戏精彩瞬间等 而寻找一款免费的 功能强大的录屏软件也变得越来越重要 本文将为您介绍3款免费录屏软件 并详细说明使用步骤 帮助您找到适合自己需求的录
  • 制作OLED图标

    制作OLED图标 陈拓 2021 06 24 2021 06 26 1 概述 制作用于OLED显示的图标 获取C语言图像点阵数据 2 图标库 先准备图标图像 可以从图标库中找需要的图案 下面两个是我常用的图标网站 2 1 Font Awes
  • 什么是gdb,gdb的简单用法

    在Linux中 gdb是GNU调试器 GNU debugger 的缩写 它是一个强大的命令行调试工具 用于调试C C 和其他编程语言的程序 使用gdb可以执行以下任务 启动程序并逐行执行代码 设置断点 以便在特定位置停止程序执行 检查变量的
  • php漏洞eval,Web安全之代码执行漏洞

    原标题 Web安全之代码执行漏洞 内容 1 代码执行漏洞的概述 2 代码执行漏洞的危害 3 代码执行漏洞的利用 4 代码执行漏洞的防御 背景介绍 在Web应用中有时候程序员为了考虑灵活性 简洁性 会在代码调用eval函数 PHP函数 去处理
  • oracle imp lrm 00101,LRM-00101: unknown parameter name解决办法

    LRM 00101 unknown parameter name解决方法 点击右边红色标题查看本文完整版 LRM 00101 unknown parameter name解决方法 SQL gt startup pfile d oracle
  • 2023华为od机试 Python【比赛冠军】

    题目 我们现在有若干个运动员 每个运动员有自己独特的id 每个运动员的能力不同 比赛按照如下规则进行 0号和1号 2号和3号 以此类推 在每一轮比赛中 获胜的进入下轮 输入描述 输入一行N个数字代表N的运动员的实力值 输出冠亚季军的id 用
  • 逻辑思维训练题

    1 估算你所在城市理发店的数量 https www jianshu com p 1431daad2c62 这种思维方式的核心 就是把你要探索的结果用一个数理公式展示出来 我们用最开始的煎饼摊例子来看怎么算 就要用到 利润 收入 变动成本 而
  • 用于包管理的基本命令APT-GET和APT-CACHE

    这篇文章解释你如何快速学习从命令行使用apt get和apt cache安装 移除 升级和搜索软件包 这篇文章提供一些有用命令 它们将帮助你在基于Debian Ubuntu的系统中处理包管理 apt get是什么 apt get工具是一个强
  • Flutter基础Dart单例的实现

    引言 在日常开发搭建基础框架时 常常用到全局使用的数据类或者工具类 比如日期工具类 地图工具类等 在项目一般使用几种单例类来分享心得 有类实例方式 工厂方式以及类静态方式 实例方式 使用DartPad cn网站来练习dart简单代码片段还是
  • [QT编程系列-40]:QML语言简介

    目录 第1章 简介 第2章 QT QML示例 第三章 QML的步骤 第1章 简介 QML Qt Meta Object Language 是Qt框架中用于构建用户界面的声明性语言 它是一个轻量级的语言 用于描述界面的结构和行为 使开发人员能
  • 樱花动漫中的视频下载分析

    昨天有个朋友问我樱花动漫中的视频怎么下载 那么今天我就写篇文章来专门分析下樱花动漫中的视频是怎么下载的 1 还是打开我们的马赛克视频助手 来分析樱花动漫的数据包 当然你们也没有用其他的抓包工具 不过我习惯了用这个 可以使用它的转到来源功能
  • EPI distortion correction形变矫正, eddy, fieldmap等五种不同方法

    EPI distortion correction形变矫正 1 topup eddy 2 fieldmap eddy 2 1 对mag做去脑壳 2 2 基于去过脑壳的mag 1volume bet nii gz数据 对fieldmap进行预

随机推荐

  • STM32 FLASH操作

    STM32 的闪存模块由 主存储器 信息块和闪存存储器接口寄存器等 3 部分组成 主存储器 该部分用来存放代码和数据常数 如 const 类型的数据 对于大容量产品 其被划分为 256 页 每页 2K 字节 注意 小容量和中容量产品则每页只
  • 解决iframe在ios中无法滚动的bug

    在解决iframe在ios无法滚动的bug中 需要在iframe外面包裹一层div 如下 div class scroll wrapper div 然后设置scroll wrapper的样式 给scroll wrapper添加 webkit
  • camunda 流程引擎如何开始并行任务,且有哪些实现方式?

    认识并行任务 在流程引擎开发中 稍微复杂一点的项目都会遇到并行任务 什么是并行任务呢 就是在完成一个流程节点后 下一步会同时开始多个任务 且任务与任务之间互不影响 这个说起来真的有点绕 刚开始我真不理解 试了好多次才想明白 下面就画2条不同
  • 错误的分页写法及修改

    一 错误的写法 api GetMapping groupList ApiImplicitParams ApiImplicitParam name current value 页码 required true dataType Long da
  • MMdetection学习笔记 第一步安装配置

    安装 之前的安装老是出问题 这里重新仔细进行第三遍 参考了哔哩哔哩的视频教程 mmdetection 教程 使用篇 https www bilibili com video BV1Jb4y1r7ir p 3 share source cop
  • Qt(windows下)捕获异常信息并自动重启

    参考 https blog csdn net x85371169 article details 79267592 目前在弄一个工业上用的软件 需要实现无人值守功能 软件经过两三个星期的debug 已经将绝大部分导致软件死机的bug修复 但
  • 使用burpsuite对web进行账号密码暴力破解

    一 打开环境 1 打开php 2 打开burp suite 3 打开小狐狸 进入127 0 0 1 pikachu 二 Repeater 重发器 1 访问pikachu 多次进行用户名和密码的登录 描述 2 burp suite 中抓包 3
  • set和multiset的用法详解

    一 set文档介绍 1 set是按照一定次序存储元素的容器 2 在set中 元素的value也标识它 value就是key 类型为T 并且每个value必须是唯一的 set中的元素 不能在容器中修改 元素总是const 但是可以从容器中插入
  • 【语义分割】2、Mapillary 数据集简介

    文章目录 一 简介 二 类别 三 标注示例 一 简介 Mapillary Vistas 数据集包含 66 类共 25 000 张高分辨率街景场景的数据 其中有 37 个类是以实例区分的标签 数据总量是 cityscapes 的5倍之多 包括
  • Open3D 基于点云高程制作热力图

    目录 一 概述 二 代码实现 三 结果展示 一 概述 如题 基于点云的高程来制作热力图渲染赋色点云 其结果如下图所示 二 代码实现 import numpy as np import open3d as o3d from matplotli
  • leetcode刷题方法

    leetcode刷题方法 一 范围内的200题 二 刷题步骤 三 算法思路 四 更新 1 12日留 此文章借鉴 陈同学在搬砖 微信公众号的一篇文章 https mp weixin qq com s xr2abGNv8wDZJ qyN4Kew
  • HTML、CSS、JavaScript分别实现什么功能?

    学习Web前端开发基础技术需要掌握 HTML CSS JavaScript 那么这三个都是分别实现什么功能的呢 下面和小编一起来看看吧 一 HTML是网页内容的载体 内容就是网页制作者放在页面上想要让用户浏览的信息 可以包含文字 图片 视频
  • Springboot整合dubb3+nacos作注册中心(基础篇)

    1 首先看下项目结构如下 2 新建父工程springboot dubbo模块 pom文件如下
  • 亲测可用,SpringBoot项目打印接口请求信息日志,CommonsRequestLoggingFilter实现方式

    文章目录 需求背景 效果图 实现思路 其他方案对比 优缺点分析 具体实现 需求背景 线上项目出现bug时 可以通过接口的请求参数来排查定位问题 和业务方battle时 能够证明他是自己操作的问题 效果图 实现思路 Spring提供了Comm
  • 重试机制的实现(4m,10m,10m,1h,2h,6h,15h)

    项目场景 由于我们现在所做的项目有有很多的外放接口供代理商调用 但是有些接口的响应并不是实时返回的 此时我们就需要使用回调接口的方式 将信息响应给代理商 在这期间可能会出网络不稳定等其他情况 导致回调接口调用失败 所以需要特定的回调重试机制
  • 数据库系统原理---封锁

    封锁 封锁粒度 MySQL中提供了两种封锁粒度 行级锁和表级锁 应该尽量的只锁定需要修改的那部分数据 而不是所有的资源 锁定的数据量越少 发生锁争用的可能性就越小 系统的并发程度就越高 加锁需要消耗资源 锁的各种操作 包括锁的获取 释放锁
  • org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentExceptio

    这是我转载的一片文章 解决了我的问题 所以记录一下 话不多说 见正文吧 elasticsearch安装踩过的那些坑 坑1 failed to send join request to master 原因 你复制了某个节点的elasticse
  • supervisor系列:5、日志

    supervisor系列 5 日志 文章目录 supervisor系列 5 日志 1 活动日志 1 1 活动日志输出示例 1 2 活动日志等级 1 3 活动日志轮换 2 子进程日志 2 1 捕获模式 supervisord执行的主要任务之一
  • 一文带你从IntelliJ IDEA中一键生成Controller、Service、Dao、Model层代码,真的不看看吗?

    前言 EasyCode插件介绍与安装 简介EasyCode是基于IntelliJ IDEA开发的代码生成插件 支持自定义任意模板 Java html js xml 只要是与数据库相关的代码都可以通过自定义模板来生成 支持数据库类型与java
  • LoadRunner用户验证码和验证码使用脚本

    Action 定义Md5变量用来存放使用md5加密后的字符串 char Md5 33 存放包含用户登录信息的URL char str 174 存放用户账户信息 char str1 92 存放当前时间 int t1 int a char Me