这是用LoadRunner自定义监控Tomcat的脚本为基础而写的脚本.阐述了参数相互之间以及参数与变量之间复制传递原理.下面的代码注释是按照自己的理解写的,正确性不一定保证.

  1. Action()
  2. {
  3. //定义三个字符数组用于条件判断
  4. char jFM[100];
  5. char jTM[100];
  6. char jMM[100];
  7. //必须要预先声明数据转换函数,否则得到的监控结果不正确.
  8. double atof(const char *string);
  9. //以下三个web_reg_save_param负责从Tomcat中抓取监控数据
  10. web_reg_save_param("JVM_Free_Memory",
  11. "LB=Free memory:",
  12. "RB=MB",
  13. "ORD=1",
  14. LAST);
  15. web_reg_save_param("JVM_Total_Memory",
  16. "LB=Total memory:",
  17. "RB=MB",
  18. "ORD=1",
  19. LAST);
  20. web_reg_save_param("JVM_Max_Memory",
  21. "LB=Max memory:",
  22. "RB=MB",
  23. "ORD=1",
  24. LAST);
  25. //设定监控事务
  26. lr_start_transaction("Status");
  27. //登陆Tomcat
  28. web_set_user("admin", "admin", "localhost:8080");
  29. //Tomcat监控URL
  30. web_url("status",
  31. "URL=http://localhost:8080/manager/status",
  32. "Resource=0",
  33. "RecContentType=text/html",
  34. "Snapshot=t1.inf",
  35. "Mode=HTML",
  36. LAST);
  37. lr_end_transaction("Status", LR_PASS);
  38. //通过用户自定义监控Tomcat_JVM的使用情况
  39. //lr_user_data_point("JVM Free Memory", atof(lr_eval_string("{JVM_Free_Memory}")));
  40. //lr_user_data_point("JVM Total Memory", atof(lr_eval_string("{JVM_Total_Memory}")));
  41. //lr_user_data_point("JVM Max Memory", atof(lr_eval_string("{JVM_Max_Memory}")));
  42. lr_output_message("**********************************");
  43. //打印监控值
  44. lr_output_message(lr_eval_string("{JVM_Free_Memory}"));
  45. lr_output_message(lr_eval_string("{JVM_Total_Memory}"));
  46. lr_output_message(lr_eval_string("{JVM_Max_Memory}"));
  47. lr_output_message("**********************************");
  48. //将参数的值保存在另外一个参数中(其实从运行原理上说,类似于C++中的引用)
  49. lr_save_string(lr_eval_string("{JVM_Free_Memory}"), "JFreeMem");
  50. lr_save_string(lr_eval_string("{JVM_Total_Memory}"), "JTotalMem");
  51. lr_save_string(lr_eval_string("{JVM_Max_Memory}"), "JMaxMem");
  52. lr_output_message("**********************************");
  53. //打印"引用"中的值
  54. lr_output_message(lr_eval_string("{JFreeMem}"));
  55. lr_output_message(lr_eval_string("{JTotalMem}"));
  56. lr_output_message(lr_eval_string("{JMaxMem}"));
  57. lr_output_message("**********************************");
  58. //将参数值赋给变量(字符串数组)
  59. strcpy(jFM, lr_eval_string("{JVM_Free_Memory}"));
  60. strcpy(jTM, lr_eval_string("{JVM_Total_Memory}"));
  61. strcpy(jMM, lr_eval_string("{JVM_Max_Memory}"));
  62. //进行逻辑判断
  63. if (strcmp(jFM, "") == 0 && strcmp(jTM, "") == 0 && strcmp(jMM, "") == 0) {
  64. lr_output_message("%s", "无参数");
  65. } else {
  66. lr_output_message("%s", "有参数");
  67. }
  68. //输出实际值
  69. lr_output_message("**********************************");
  70. lr_output_message("%s", jFM);
  71. lr_output_message("%s", jTM);
  72. lr_output_message("%s", jMM);
  73. lr_output_message("**********************************");
  74. //将变量值保存在另外一个参数中(其实从运行原理上说,类似于C++中的引用)
  75. lr_save_string(jFM, "JFreeMem");
  76. lr_save_string(jTM, "JTotalMem");
  77. lr_save_string(jMM, "JMaxMem");
  78. lr_output_message("**********************************");
  79. return 0;
  80. }

LoadRunner参数和变量之间的转换的更多相关文章

  1. php数组·的方法3-数组和变量之间的转换

    /* * 数组和变量之间的转换 * */ //extract() 使用数组定义一组变量 // 键名为变量名 键值为变量值(类似于js的解构赋值) // 返回值是数组的长度 echo '<hr&g ...

  2. LoadRunner 参数和变量的区别(未完)

    挺久没来更新了,坚持是件不容易的事呢,之后坚持每天总结下前一天的学习点 在LR中,参数是一种更高级的变量,他们能起到同样的效果,但同时也有几点不同 1. 定义方法不同 (这个还没看懂) 2. 调用语法 ...

  3. PHP 基础函数(三)数组和变量之间的转换

    extract($arr);用于把数组中的元素转换成变量导入到当前文件中,键名当作变量名,值作为变量值注:(第二个参数很重要,可以看手册使用)使用方法 echo $a;compact(var1,var ...

  4. C变量之间的转换

    int main(){ //定义了三个变量分别是abc ab的值分别是5跟8 c没有赋值  把b的值给c 把a的值给b 把c的值给a 形成了一个ab值得转换: int a=5; int b=8; in ...

  5. jsp 普通变量与jQuery变量之间的转换

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  6. LoadRunner中的参数与变量

    在LoadRunner脚本开发中,经常会遇到参数与变量相互转换的情况,本文对常见的转换情形进行了方法总结. 1.变量的赋值 //将字符串赋值给变量 ]; strcpy(strTemp, "H ...

  7. LoadRunner中的参数与变量-产生20位的随机数

    LoadRunner中的参数与变量-产生20位的随机数 在LoadRunner脚本开发中,经常会遇到参数与变量相互转换的情况,本文对常见的转换情形进行了方法总结. 1.变量的赋值 //将字符串赋值给变 ...

  8. Loadrunner中参数和变量的使用

    //字符串复制strcpy(str,"Hello ") ; //字符串连接strcat(str,"World !");lr_message("str: ...

  9. loadrunner 参数存储在data.ws、paralist、globals.h 中区别(参数与变量额区别于使用)

    1.如果变量数据只有一个值,可以直接放在data.ws 中    2.如果变量要根据循环取随机值.序列值等(参数存在一组值),放在paralist中     3.如果是申明全局变量,且要在代码中用到参 ...

  10. LoadRunner 如何将英文的字符串转换成UTF-8格式的字符串?

    7.48  如何手动转换字符串编码 1.问题提出 如何将英文的字符串转换成UTF-8格式的字符串? 2.问题解答 可以使用lr_convert_string_encoding函数将字符串从一种编码手动 ...

随机推荐

  1. jwt的一些封装

    package study; import java.io.File; import java.io.IOException; import java.nio.file.Files; import j ...

  2. drf-视图集、路由系统、action装饰器

    1.9个视图扩展类 1.两个视图基类:APIView.GenricAPIView 2.5个视图扩展类:CreateModelMixin,UpdateModelMixin,RetrieveModelMi ...

  3. 有效的字母异位词&两个数组的交集& 快乐数& 两数之和

    一.有效的字母异位词 242. 有效的字母异位词 1.方法概述 因为本题中字符串只包含小写字母,就可以定义一个数组来记录字符串中字符出现的次数.遍历第一个字符串,用charAt拿到对应的小写字母然后减 ...

  4. 面试必问:JVM 如何确定死亡对象?

    在 JVM 中,有两个非常重要的知识点,一个是 JVM 的内存布局(JVM 运行时的数据区域),另一个就是垃圾回收.而垃圾回收中又有两个重要的知识点,一个是如何确定 JVM 中的垃圾对象,另一个是使用 ...

  5. 2021级《JAVA语言程序设计》上机考试试题10

    教学副院长功能页 <%@ page language="java" contentType="text/html; charset=UTF-8" page ...

  6. Technique to Read Source Code

    Technique to Read Source Code Excerpted from http://ruby-hacking-guide.github.io/intro.htm Any progr ...

  7. 使用NAT网络模式搭建内网,修改IP地址

    使用NAT网络模式搭建内网,修改IP地址 首先说明一下虚拟机的三种联网方式: 桥接模式: 简单来说就是使这台虚拟机成为一台在互联网中的有独立IP的一台新设备和Mac地址(不够都是虚拟的) NAT模式: ...

  8. ATC:一个能将主流开源框架模型转换为昇腾模型的神奇工具

    摘要:本文介绍了昇腾CANN提供的模型转换工具ATC,介绍了其功能.架构,并以具体样例介绍了该工具的基本使用方法以及常用设置. 本文分享自华为云社区<使用ATC工具将主流开源框架模型转换为昇腾模 ...

  9. Flutter 下载篇 - 贰 | 当下载器遇上切换网络库

    需求背景 继上篇<Flutter 下载篇 - 壹 | flutter_download_manager 源码解析>中详细介绍了 flutter_download_manager 用法和原理 ...

  10. 关于winform 调用本地html页面路径不正确问题

    //为了使网页能够与winform交互 将com的可访问性设置为真 [System.Security.Permissions.PermissionSet(System.Security.Permiss ...