当前位置: 首页 > news >正文

LoadRunner(一)LR文件整个读取和计算长度

今天在项目上遇到一个问题,需要对上传功能进行压力测试,在接口上分析后,发现接口只接收base64的编码格式数据流,那么就涉及到需要针对上传文件先进行Base64编码,然后再读取出来,传入接口。
Base64编码工具网上很多,针对文件进行编码的也有,不过没找到批量进行编码和保存的,这里先拿一个来用,等有空了自己写一个批量编码的。编码完成后,可将编码内容保存到记事本里面,编码后的样子大概如下:这里写图片描述

经过测试发现,编码后文件大小会比编码前大20%左右,如果接口对数据流大小有限制的,一定要留意原始文件的长度。

回到正题,下面贴出来loadrunner文件读取部分代码,loadrunner如果自己不对文件指针进行操作的话,会默认只读一行而不是所有内容,一定要注意,代码如下:

    char Data[1024*1024*2];      //此变量需设置为全局变量,否则会出现定义超长的问题
    char buffer[1024*1024*2];    //此变量需设置为全局变量,否则会出现定义超长的问题
    int count = 0;
    long file_stream;
    char * filename = "E:/上传/123.txt";
    if ((file_stream = fopen(filename, "rb")) == NULL )  //读写方式打开文件
    {
        lr_error_message ("Cannot open %s", filename);
        return -1;
    }
    // 一直读到文件结束
    while (!feof(file_stream))  
    {
        fread(buffer, sizeof(char), 1024*1024*2, file_stream);
        //此BUFFER大小可以自行设置,建议设置到接口允许的最大值,经测试,设置过小,而文件较大的时候,读取会出现读不完的问题,原因未知
        if (ferror(file_stream))
        {
            lr_output_message ("Error reading file %s", filename);
            break;

        }
        strcat(Data,buffer);
    }

    count = strlen(Data);
    lr_output_message ("Total number of bytes read = %d", count);
    lr_output_message ("Data is  = %s", Data);
    // Close the file stream
    if (fclose(file_stream))
    {       
        lr_error_message ("Error closing file %s", filename);
    }   

输出结果如下:
这里写图片描述

相关文章:

  • LoadRunner(二)LR参数文件多列的使用和局部变量超长的问题解决方法
  • 文件批量Base64编码工具
  • Windows下批处理方式压缩文件夹为tar.gz的方法
  • RFS(六)Open Browser后,页面显示This is the initial start page for the WebDriver server.的解决办法
  • 解决在Windows server 2012R2上无法安装Intel I219-V,I211,I217-V,I218-V网卡驱动的问题
  • 谈谈在Windows7 x86上,H170芯片组和H150芯片组可用内存只有2.1G的问题
  • 解决在H170/B150主板不接显示器无法正常开机的问题
  • 有关Intel主板驱动静默安装的一个坑
  • 有关Windows免密码登陆远程桌面的两种实现方法
  • Advanced Installer 中测试数据库连接提示“未发现数据源名称并且未指定默认驱动程序”的解决办法
  • SSD硬盘在检测中出现数据损坏的处理
  • Advanced Installer (一)初见
  • Advanced Installer 安装前卸载旧版本的办法
  • 浅谈HTTP和HTTPS
  • LoadRunner(三)再识web_custom_request函数
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • Android组件 - 收藏集 - 掘金
  • Bytom交易说明(账户管理模式)
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • Java 网络编程(2):UDP 的使用
  • Java方法详解
  • Linux Process Manage
  • React as a UI Runtime(五、列表)
  • React组件设计模式(一)
  • 动态规划入门(以爬楼梯为例)
  • 给新手的新浪微博 SDK 集成教程【一】
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 将回调地狱按在地上摩擦的Promise
  • 如何在 Tornado 中实现 Middleware
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 微服务入门【系列视频课程】
  • 微信开放平台全网发布【失败】的几点排查方法
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 智能网联汽车信息安全
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​【已解决】npm install​卡主不动的情况
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #pragma预处理命令
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (day6) 319. 灯泡开关
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (规划)24届春招和25届暑假实习路线准备规划
  • (一) storm的集群安装与配置
  • (一)Linux+Windows下安装ffmpeg
  • (一)Thymeleaf用法——Thymeleaf简介
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .net 生成二级域名
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [04]Web前端进阶—JS伪数组
  • [ACM] hdu 1201 18岁生日
  • [bzoj1038][ZJOI2008]瞭望塔
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计
  • [ComfyUI进阶教程] animatediff视频提示词书写要点