1.首先在进行性能测试的时候,我们要了解软件的通信协议是什么,我们使用什么协议,如何去模拟。SOCKET协议主要应用于在C/S模式的系统。

作者本人已当初做过的C/S架构的系统做的脚本录制,在上面做脚本的参数化以及优化工作。脚本如下:

#include "lrs.h"
#include <sub1.h>
#include <sub2.h>//包含了2个自定义的C函数。LR不支持C++的函数库。C++函数需要做修改
Action()
{
 unsigned char cLine[2048]={0};
 unsigned char cOut[2048]={0};
 unsigned char cOut2[2048]={0};
 unsigned char retu1[2048]={0};
 int len = 0;
 int len1 = 0;
 int rc,i,re;
 lr_start_transaction("Conn_socket");
    rc =  lrs_create_socket("socket0", "TCP", "RemoteHost=127.0.0.1:22222",  LrsLastArg);//创建SOCKET连接
    //lr_output_message("rc=%d",rc);
//连接成功返回判断
    if (rc != 0 ) {
  lr_end_transaction("Conn_socket", LR_FAIL);
  return 0;
 }
    lr_end_transaction("Conn_socket", LR_PASS);
    lr_start_transaction("sender");
 strcpy(cLine,lr_eval_string("<shuju>" ));//LR参数传递入C环境
 len = strlen((char*)cLine);//或者字符串的长度
 //字符串转ASCII码
    AsciiToHex(cLine,cOut,len);
 //字节数组cOut的长度:
 len1 = strlen((char*)cLine)/2;
    lrs_save_param_ex("socket0", "user", (char *)cOut, 0, len1,"ascii", "sender0");
    lrs_send("socket0","buf0", LrsLastArg);
    lrs_receive("socket0","buf1",LrsLastArg);
 lrs_save_param( "socket0", LRS_LAST_RECEIVED, "Parame1", 0, -1 );
 strcpy(retu1,lr_eval_string("<Parame1>"));
    re = lrs_get_last_received_buffer_size("socket0");
 //ASCII码转字符串
 HexToAscii( retu1,cOut2,re);
    lr_output_message("return is %d",re);
if( cOut2 == cLine )//对返回值做判断
    lr_end_transaction("sender", LR_PASS);
    else
    lr_end_transaction ("sender", LR_FAIL);
lrs_close_socket("socket0");
 
    return 0;
}

最新文章

  1. Docker初体验
  2. [CSS]textarea设置下划线格式
  3. JavaScript类属性
  4. Apache 安装配置详情
  5. [转载]爬虫的自我解剖(抓取网页HtmlUnit)
  6. 【codevs 1565】【SDOI 2011】计算器 快速幂+拓展欧几里得+BSGS算法
  7. java编程思想-java注解
  8. this的面面观
  9. Python Base HTTP Server
  10. 轻松架设时时监控工具Cacti
  11. N3292系列资料之RTC介绍
  12. Android中数据库的操作流程详解
  13. Django框架详细介绍---cookie、session、自定义分页
  14. Windows Server 2012安装IIS 8.0
  15. jQuery学习(1)猜数字游戏
  16. Spring+SpringMVC+MyBatis整合(easyUI、AdminLte3)
  17. java构造代码块详解
  18. XQuery使用sum求和,提示char不能转换为money解决方法
  19. JDK7,8,JD9的hashmap,hashtable,concurrenthashmap及他们的区别
  20. OS考研复习笔记——操作系统的定义、目标、作用和发展的主要动力

热门文章

  1. JavaCollection
  2. eclipse忽略js文件报错
  3. DHCP服务器安装、测试
  4. 【风马一族_php】NO2_php基础知识
  5. sqlplus连接数据库报错SP2-0642: SQL*Plus internal error state 2130, context 0:0:0解决
  6. phpexcel使用说明5----ThinkPHP+PHPExcel[导入][导出]实现方法
  7. some daily
  8. Spring security获取当前用户
  9. 2019-8-31-dotnet-使用-lz4net-压缩-Stream-或文件
  10. win10 子系统ubuntu中文乱码