本文转载自 http://bbs.51testing.com/thread-462017-1-1.html (出处: 51Testing软件测试论坛 )

第1节课:为什么选用socket通过方式?

好多人在本论坛上或者其他技术网站来喜欢问:我想测试C/S架构的软件,请问怎么录制?我的程序是C\C++开发的,请问怎么录制脚本?回答的人也很轻浮的答道:socket。

关于socket协议的概念就不多讲。自己上网查。不理解的贴出来讨论。我这边只说为什么c/s架构的软件要选用socket协议来进行测试。因为loadrunner的原理就是录制网络上传输的网络数据包,所以我们选择与程序相对应的协议,才能更好的去定位在loadrunner中使用什么协议,请问:所有的C/S架构软件都用socket协议吗?当然不是。所以要根据自己的具体产品去看,自己不懂,就找开发去问问。loadrunner11虽然增加了一个功能,用于测试你的程序使用什么样的协议录制比较合理。但很明显这是鸡肋。在工作中我们是如何更好的去把工作做好。高技术说白了也是为了更好的工作,但有了技术我们还要利用方法、思路去做工作。

第2节课:socket脚本的基本结构:
#include "lrs.h"

vuser_init()
{
    lrs_startup(257);

return 0;
}

#include "lrs.h"

Action()
{
        int handler;

lrs_create_socket("socket0","TCP","RemoteHost=10.1.106.6:20000",LrsLastArg);

handler=lrs_get_socket_handler("socket0");

if (handler!=0)

{
                lr_output_message("the new socket handler is: %d",handler);
                }

else
                {
                lr_output_message("the new socket is not create");
                }
        
    return 0;
}

#include "lrs.h"

vuser_end()
{
    lrs_cleanup();

return 0;
}

对第2节课中的内容进行讲解:
代码目的:在进行socket协议性能测试之前,我们首先需要对测试环境的tcp/ip连接数情况进行测试,确保你的测试机、被测试机上不存在tcp/ip连接数限制,或者其他问题。这样才能保证测试的结果的准确性。举个例子:假设您的测试程序放在一台xp机器上。xp机器默认的tcp/ip连接数为10个。那么您并发100个压力测试就失去了意义。所以我们在工作之前需要先通过一个简单的只创建socket连接的程序测试下测试环境。比如我最近发现windows 2003 sp2 企业版创建的socket连接数在7000-8000之间。linux下就比较高。

通过代码学习到的知识点:
lrs_startup(257);  启动winsocket.dll。知道就可以。

lrs_create_socket:创建socket函数。参数分别是:socket名称、协议类型(TCP或UDP)、链接类型(远程链接:RemoteHost、本地:LocalHost、或者本地监听)、LrsLastArg 参数结束标记。在实际工作中对此函数认识还是从浅到深吧。不要一开始就去查函数,看帮助的文档,如果你不是高手,就不要这样。还是先录制一个脚本,在录制的脚本去理解,去体会,知道这个就是创建了一个socket连接就好了。当你要测试客户端、当你要测试服务器。有具体问题了,再去查函数。深入理解。

lrs_get_socket_handler:用来或者你所创建的socket的句柄。就一个参数:要获取句柄的socket名称。

第3节课:一个登陆过程的完整脚本

#include "lrs.h"

vuser_init()
{

lrs_startup(257);

lrs_create_socket("socket0", "TCP", "RemoteHost=10.1.1.28:3656",  LrsLastArg);

return 0;
}

备注:按照编程习惯,我们一般把初始话winsocket和创建socket连接程序放到脚本初始化部分。不是必须,只是一种完美的表现。当然迭代的时候是有具体的说道。

/*********************************************************************
 * 【创 建 者】 cafard@版权所有

* 【脚本说明】 V4.0-客户端-用户登录
 
 * 【创建日期】 2011-05-20

* 【脚本版本】 LoginV1.0
 *********************************************************************/
#include "lrs.h"

Action()
{

//是否需要设置集合点

//lr_rendezvous("模拟登录");

//开始登录事务
        lr_start_transaction("模拟登录");
//发送登录请求数据包
        lrs_send("socket0", "buf0", LrsLastArg);
//接收服务器返回的数据包
        lrs_receive("socket0", "buf1", LrsLastArg);
        return 0;
}

说明:数据收发过程。需要知道lrs_send是发送数据包函数。lrs_receive是接受数据包函数就好。

#include "lrs.h"

vuser_end()
{

lrs_close_socket("socket0");

lrs_cleanup();

return 0;
}

说明:lrs_close_socket是关闭连接,lrs_cleanup是停止对winsocet的使用,回收相关资源。

;WSRData 2 1
send  buf0 35
        "\x00\x00"
        "N"
        "\xc0\xff\xff\xff\xff"
        "\xf4\x01"
        "\x00\x00"
        "L"
        "\x14\x00"
        "1050378754|cywtzc|0|"

recv  buf1 29
        "\x00\x00"
        "A"
        "\xc0\xff\xff\xff\xff\xd1"
        "\a"
        "\x00\x00"
        "L"
        "\x02\x00"
        "0"
        "\x00"
-1

说明:收发的数据部分。这个部分我会利用一节课单独讲述。

loadrunner测试socket协议程序知识汇总相关推荐

  1. 自行控制loadrunner的socket协议性能测试 (转)

    一前言 二任务的提出 三实现方案讨论 四技术要点讲解 如何开始录制一个最简单的收发数据包脚本 写日志文件 一行一行读数据包文件 字符串转换为十六进制数据包 发送自己定义的数据包 接收数据包到自定义缓冲 ...

  2. 【LWIP】LWIP协议|相关知识汇总|LWIP学习笔记

    这里作为一个汇总帖把,把以前写过的LWIP相关的博客文章汇总到一起,方便自己这边查找一些资料. 收录于: [LWIP]LWIP协议|相关知识汇总|LWIP学习笔记 LWIP协议 [LWIP]LWIP网 ...

  3. Loadrunner windows socket 协议简解

    今天我们来对Loadrunner下socket协议的录制和录制后的脚本的简单设置 首先我们来简单的认识一下windows socket 协议 Winsock协议是作用于windows与TCP/IP协议 ...

  4. socket协议基础知识

    Socket协议的形象描述 socket的英文原义是"孔"或"插座".在这里作为4BDS UNIX的进程通信机制,取后一种意思.socket非常类似于电话插座. ...

  5. LoadRunner编写Socket协议脚本方法

    一.打开LOadrunner 11,创建/编辑脚本,选择 Windows Sockets协议,创建--开始录制. 二.录制完成后,目录会多出一个data.ws的文件,这个适用于存放数据的 三.用loa ...

  6. Loadrunner中socket协议十六进制报文参数化方法

    在做tuxedo和socket脚本的过程中,经常会碰到发送的报文是十六进制字符串.而往往我们又需要针对十六进制报文中的某些数据进行参数化.比如pos机交易,银行方面数据交易,几乎使用socket协议. ...

  7. loadrunner之socket协议脚本编写

    1.java代码模拟服务器端程序: Java代码   package socket.com; import java.io.*; import java.net.*; public class Ser ...

  8. 【网络原理】UDP和TCP协议重点知识汇总

    目录 1.UDP协议: 2.TCP协议: 1.UDP协议: UDP协议的特点:无连接.不可靠传输.面向数据报和全双工. UDP报文最大长度是2个字节,2个字节表示的范围就是0~65535,也就是64k ...

  9. 【计算机网络】HTTP/HTTPS协议基础知识汇总

    目录 1.URL: 2.HTTP协议: 2.1抓包工具(这里用fiddler): 2.2请求和响应的格式: 2.3方法的介绍: 2.4请求报头(header): 2.5状态码: 2.6响应报头(hea ...

最新文章

  1. AngularJs中的directives(指令part1)
  2. java 的 i++ 和 ++i 的区别
  3. ubuntu下搭建一个数据化处理的开发环境
  4. Knockout.Js案例一Introduction
  5. C语言中实现边沿函数算法及应用,这是抛弃PLC留下的痛!
  6. 5.Underfitting and Overfitting
  7. Git error. Command: `git ls-files --cached --exclude-standard --recurse-submodules`
  8. 随想录(软件中的bug)
  9. makefile高级应用
  10. 数据结构和算法9——哈希表
  11. 最新AWVS14安装使用教程(2021年10月11日)
  12. 台式计算机用手机流量上网,台式机如何使用手机流量上网
  13. 携程2017 校招编程题
  14. 编写程序,在屏幕输出“Hello,World!“的字符串
  15. NSGA-II改进之种群初始化
  16. 51开发实例 基于51单片机的火灾报警系统
  17. 计算机考研 学渣逆袭上清华,学渣逆袭:曾挂科8门学分绩点1.08 考上北大研究生...
  18. 游戏二次元场景插画教程,常见的6种构图方法分享
  19. 自控考研复习 自我梳理(三) 知识来自网络,纯为总结侵权即删(二阶系统)
  20. 程序员的内涵之基于SDK的Windows应用程序框架代码详解

热门文章

  1. 达梦非模式对象—表空间、用户、角色、权限
  2. SQL中add添加列语句
  3. 攻防世界 REVERSE 新手区/maze
  4. 基于STM32的ESP8266WiFi模块波形检测仪
  5. Ubuntu Apache 配置文件路径
  6. WordPress网站如何进行gzip压缩
  7. android手机越用越慢的原因
  8. 用VC进行COM编程
  9. 颇为可惜,OPPO和vivo未能从华为身上占便宜
  10. 在Redhat里面设置热键快捷使用terminal