• 一次压力测试


    最近经历了一次较长时间的压力测试,有一些记忆,趁着没忘记,还是记下来

    压力测试客户端:Loadrunner

    压力测试服务器端:Linux/Ubuntu server

    以下按LR的三个组件来记录一下本次测试的过程

    1.脚本部分

    脚本部分是最复杂也是比较费时间的,虽然最终脚本行数不多,但是LR毕竟不是IDE,调试还是比较费时间的

    以下是用到的函数:

    web_set_max_html_param_len()
    被存储于参数中的关联内容字节大小是否小于等于256,如果大于,则需要设置web_set_max_html_param_len函数
    不设置可能出现错误Error-26377
    int web_reg_save_param(const char *ParamName, <list of Attributes>, LAST);
    ParamName: 存放得到的动态内容的参数名称
    list of Attributes: 其它属性,包括:Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, SaveLen。属性值不分大小写
    即将搜索到的内容导入第一个字符指针(字符串)中
    web_reg_save_param("des_str", "LB=left_str", "RB=right_str","Search=Body",LAST);
    web_custom_request
    构造HTTP请求用函数,参考:
    web_custom_request("web_custom_request",
    "URL=http://www.baidu.com",
    "Method=GET",
    "TargetFrame=",
    "Resource=0",
    "Referer=",
    "Mode=HTTP",
    "Body=123",
    LAST);
    web_get_int_property(HTTP_INFO_RETURN_CODE);
    获取上个执行HTTP请求的返回码
    lr_end_transaction("transaction_name", LR_PASS);
    用来判断事务通过或者失败,通常与if语句配合使用

    2.执行测试部分

    这部分比较零散

    客户端:

    1.有时会出现通道错误(socket),在controller中 诊断->配置 关闭勾选即可

    2.运行时设置需要注意的:

      1.关闭日志,可能会导致磁盘写满

      2.如果曲线中自动出现开始事件和结束时间,将”自动事务“中的两个选项勾选并取消勾选即可

      3.首选项用socket可能较快,不行再用wininet回放。后者是LR自己的通信方式

    3.如果需要加载Unix资源的曲线,需要安装unix监控,以下是两个相关的命令

    rpcinfo -p
    
    rpc.rstatd

    无法执行相关命令按照提示安装相关程序即可

    服务器端:

    无非是一些命令来监控Linux服务器的运行情况

    top中Load average,cpu的id,以及进程的cpu和内存占用情况等等

    一般看负载和cpu,如果需要看内存,需要看物理内存和swap,因为Linux有时候物理内存用完了是不释放的(为了后续使用比较方便),所以会出现内存未满,但仍然使用了较多swap的情况

    另外需要关注一下流量和磁盘io即可

    iftop 查看网络流量
    
    vmstat 相当于top的简化版 可以用 vmstat 1 100 来执行100次,每秒一次

    3.报表

    项目中使用的并非LR的第三个大组件直接生成doc等等,而是只生成报表,记录一下数据即可

    1.报表中可以修改事务分析的百分比(90%还是95%)

    2.可以按1秒,10秒,还是60秒的粒度来显示曲线(LR是采集了所有的数据的,显示的默认曲线只是展示给你看而已,可以根据需要显示不同粒度的曲线)

    3.每秒请求数:即发出的请求

    4.每秒响应数:即受到的响应

    暂时记录这么多,如有后续有需要的再补充

    补充1:

    如果需要录制HTTPS请求,可以参考http://blog.csdn.net/hualusiyu/article/details/22470291

  • 相关阅读:
    使用 Scrapy 爬取股票代码
    基于python开发的股市行情看板
    基于django的视频点播网站开发
    一个基于php+mysql的外卖订餐网站(带源码)
    线性表概述及单链表的Java实现
    使用github pages搭建个人博客
    解决SpannableString在Android组件间传递时显示失效的问题
    Android进程间通信(一):AIDL使用详解
    Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)
    Linux创建普通用户
  • 原文地址:https://www.cnblogs.com/qooweds/p/6197800.html
Copyright © 2020-2023  润新知