loadrunner远程linux服务器,在LoadRunner向远程Linux/Unix执行命令行并收集性能数据

前面介绍过在LoadRunner的Java协议实现“使用SSH连接Linux”,当然连接之后的故事由你主导。

下面的脚本,是在LoadRunner里连接Linux/Unix远程服务器,收集其磁盘IO的负载到测试结果中。

涉及到三个知识点:

1、LoadRunner自带“PuTTY Link”的使用,路径为“%LR_PATH%\bin\plink.exe”;

2、Linux/Unix的磁盘监控指令,读者也可以扩展为其它任何实用指令;

3、LoadRunner自带函数lr_user_data_point的使用,保存自定义数据到测试结果。

脚本贴出如下:

#define BUFFER_SIZE 20480 // 初始给它 20 KB

extern char* strtok(char *token, const char *delimiter); // 显示申明

Action(){

long fp; // 数据流

int count; // 用于保存流长度

char buffer[BUFFER_SIZE]; // 给数据流分配内存空间

char * row_token; // 记录每一行的地址

char field_name[100]; // 第一列的名称

int field_value; // 保存系列的值

char lrudp_name[100]; // 保存LR自定义指标值

int rc; // 保存返回值

lr_start_transaction("DiskIO");// Linux采样方式: plink -ssh -l username -pw password hostname command

lr_save_string("higkoo", "UserName");

lr_save_string("123456", "Password");

lr_save_string("192.168.10.31", "Server");

lr_save_string("iostat -xc | awk 'NR >2 {print $1, $10}'", "Command"); // 使用iostat拿到磁盘IO的状态信息

lr_save_string(lr_eval_string("\"%LR_PATH%\\bin\\plink\" -ssh -l {UserName} -pw {Password} {Server} \"{Command}\" 2>&1 "), "Result"); // 使用plink连接远程Linux服务器并拿到执行结果

fp = popen(lr_eval_string("{Result}"), "r");

if (fp == NULL) {

lr_error_message("执行命令失败");

return -1;

}

count = fread(buffer, sizeof(char), BUFFER_SIZE, fp); // 读取结果

if (feof(fp) == 0) {

lr_error_message("返回结果太大,请给数据流分配更大内存空间,谢谢!");

return -1;

}

if (ferror(fp)) {

lr_error_message ("监控指令返回错误");

return -1;

}

if (count == 0) {

lr_error_message("监控指令返回结果为熔");

return -1;

}

buffer[count] = NULL;

row_token = (char*) strtok(buffer, "\n"); // 按换行符分割

if (row_token == NULL) {

lr_error_message ("未发现有效数据");

return -1;

}

while (row_token != NULL) { // 开始读取数据

rc = sscanf(row_token, "%s %d", field_name, &field_value); //分割名称与值

if (rc != 2) {

lr_error_message("Incorrect number of items read from the row.");

return -1;

}

sprintf(lrudp_name, "disk_busy_%s", field_name);// 自定义数据的名称

lr_user_data_point(lrudp_name, field_value);// 保存到LR自定义数据

row_token = (char*) strtok(NULL, "\n");

}

pclose(fp);

lr_end_transaction("DiskIO", LR_AUTO);

}

功能实现了,后面的故事你来讲~~

17a18279190e583ec9f24fac7ed14eb9.gif

【转载】在LoadRunner向远程Linux/Unix执行命令行并收集性能数据

前面介绍过在LoadRunner的Java协议实现“使用SSH连接Linux”,当然连接之后的故事由你主导. 今天要讲的,是一个非Java版本.是对“在LoadRunner中执行命令行程序之:pope ...

Jmeter中使用SSH插件,连接远程linux机器执行命令

一.Why 在云主机测试中,需要使用SSH协议连接云主机进行相关操作 在python中使用paramiko库很好实现,在如果要使用jmeter做性能测试时,怎么做? 二.解决 既然原生jmeter没有 ...

Python 实现远程服务器批量执行命令

paramiko 远程控制介绍 Python paramiko是一个相当好用的远程登录模块,采用ssh协议,可以实现linux服务器的ssh远程登录.首先来看一个简单的例子 import parami ...

linux中执行命令权限不够怎样处理

在linux中执行命令权限不够就要增加权限,先看遇到的情况 查看权限情况 那就赋予权限 执行命令

[转]python3之paramiko模块(基于ssh连接进行远程登录服务器执行命令和上传下载文件的功能)

转自:https://www.cnblogs.com/zhangxinqi/p/8372774.html 阅读目录 1.paramiko模块介绍 2.paramiko的使用方法 回到顶部 1.para ...

Android 开发进入Linux系统执行命令 2018-5-25 Fri.

/** * 进入linux cmd执行命令 * * @param command * @return */ private boolean runRootCommand(String command) ...

[转帖]Linux后端执行命令的方法

Linux 后台执行命令的方法 http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4241330&fromuid=212883 ...

UNIX环境编程学习笔记(22)——进程管理之system 函数执行命令行字符串

lienhua342014-10-15 ISO C 定义了 system 函数,用于在程序中执行一个命令字符串.其声明如下, #include int system( ...

java使用ssh连接Linux并执行命令

方式1:通过设置账号密码和链接地址 maven pom.xml配置:         com.jcraft

随机推荐

学习linux之用mail命令发邮件

背景 这两天工作比较闲,网上各种冲浪(这个词暴露我的网龄了).看到一位大神的文章更闲 <>.端详一番,原来是用R语言拼接字符串后用shell命令发出去.发现shell命令既然还能直接发邮件 ...

【代码笔记】iOS-点击搜索按钮,或放大镜后都会弹出搜索框

一, 效果图. 二,工程图. 三,代码. RootViewController.h #import #import "CLHSearchBar.h ...

ThinkPHP框架表单验证

对注册到test表的表单进行验证 在注册之前要对表单进行验证: 用户名非空验证,两次输入密码必须一致即相等验证,年龄在18~50之间即范围验证,邮箱格式正则验证. 自动验证是ThinkPHP模型层提供 ...

OpenStack&lowbar;Swift源代码分析——Ring基本原理及一致性Hash算法

1.Ring的基本概念 Ring是swfit中最重要的组件.用于记录存储对象与物理位置之间的映射关系,当用户须要对Account.Container.Object操作时,就须要查询相应的Ring文件( ...

css动画过渡

css动画过渡css代码: .div03{ width:100px;height:100px;background: rebeccapurple;color: #fff; -webkit-transi ...

ORACLE 博客文章目录

从接触ORACLE到深入学习,已有好几年了,虽然写的博客不多,质量也参差不齐,但是,它却是成长的历程的点点滴滴的一个见证,见证了我在这条路上的寻寻觅觅,朝圣的心路历程,现在将ORACLE方面的博客整理 ...

myeclipse新建javaweb项目,并部署到tomcat

myeclipse使用的版本: 新建web项目: File-->New-->Web Project,输入项目名称,选择J2EE规范. 完成后: JRE System Library是只要做 ...

python的GIL

GIL 是python的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行,等该线程运行完后其 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值