html tool

显示标签为“tsung”的博文。显示所有博文
显示标签为“tsung”的博文。显示所有博文

2023年5月10日星期三

tsung 定义变量的id名称必须为小写的注意

如下可以:  

<options>

   <option name="file_server" id="tlog" value="/root/.tsung/Tlog.csv" />

 </options>

但如下命名就不可以

<options>

   <option name="file_server" id="Tlog" value="/root/.tsung/Tlog.csv" />

 </options>

2023年5月9日星期二

tsung 中使用erlang 自定义方法返回当前系统时间的秒钟数

 直接上代码吧,定义名称为event_time,目标是只取到秒 ,不用毫秒;如下:

48     <setdynvars sourcetype="eval" code="fun({Pid,DynVars})->

 49                                      {A,B,C} = os:timestamp(),

 50                                      A*1000000+B end." >

 51         <var name="event_time"/>

 52     </setdynvars>

[popexizhi:
有两个注意:
1. erl的语法变量必须用大写,这里一样的,但如果不用只有debug log有报错,运行时没有报错;
2.{A,B,C} = os:timestamp(), 这里不可以写 {A,B,__} = os:timestamp(),
tsung 不支持,运行时有语法报错;
]

参考:https://www.cnblogs.com/comeonbaby/p/4867639.html

1、Tsung版本:

1.6

2、setdynvars元素的相关使用,见installpath/share/tsung/tsung-1.0.dtd:

sourcetype   (random_string | urandom_string | random_number |
          file | erlang | eval| jsonpath | value | server)

从tsung usermanual来看,引入Erlang代码需要用到的sourcetype的属性为erlang或者eval,其中,当sourcetype的值为erlang时,意味着引入的编译好的函数,当值为eval时,是在tsung脚本里编写代码。我们今天重点讲解的是,当sourcetype="eval"时,如何在Tsung脚本里编写代码,看下面这段代码:

<setdynvars sourcetype="eval" code='fun({Pid,DynVars})->
                                         Val="198",
                                         list_to_integer(Val) end.'>
          <var name="total_length_login_stream"/>
</setdynvars>

首先,解释一下,这段代码的含义:
sourcetype="eval"意思是参数的值的来源,这里是脚本里的erlang代码处理的结果,code是指erlang代码,var是指定义一变量,name为变量名,在接下来的脚本里,可以直接利用%%_variablename%%这个mark-up来取代要用这个参数值的地方。

其次,来看一下code=后面的这段内容:

对比一下tsungusermanual里的代码:

<setdynvars sourcetype="eval"
            code="fun({Pid,DynVars})->
                      {ok,Val}=ts_dynvars:lookup(md5data,DynVars),
                      ts_digest:md5hex(Val) end.">
  <var name="md5sum" />
</setdynvars>

大家可以看到,在xml里的元素属性值是以双引号括起来的,但是,我的代码里最外层却用了单引号,这是因为代码里,有双引号,防止在读取时匹配出现问题,而erlang代码里,单引号和双引号在定义变量里又有特殊含义, 所以,只能将最外部的双引号改为单引号。而其它的格式大体相同,其中,fun({Pid,DynVars})->..... end.定义了一个匿名函数,

其中,Pid和Dynvars代表的含义是:

where Pid is the Erlang process id of the current virtual user and DynData the list of all Dynamic variables  ,Pid是当前虚拟用户的Erlang进程的id,也就是说,是默认的不用特殊处理,

DynVars是脚本里所有的动态变量的列表。tsungusermanual里这段代码,因为要再次处理md5data这个动态变量,所以,利用了{ok,Val}=ts_dynvars:lookup(md5data,DynVars)这段代码,这段代码执行以后,就将md5data的值赋给了变量Val,接下来的操作就是处理Val,最后将结果赋给Tsung脚本的变量md5sum。

转:tsung debug log

 参考:https://blog.51cto.com/wsl919/874919


每次tsung启动在相应时间戳文件夹下,产生三种log文件


  • match.log:可以用于记录服务器的response(这个暂时还没有仔细查看代码)
  • tsung.log:用于记录压测过程中的statics数据
  • tsung_controller@XXX.log:用于记录程序启动运行中产生的程序运行提示log


tsung运行过程中的日志分为8个等级

%% Debug messages can be completely disabled if DEBUG is not defined 

-ifdef(DEBUG). 

    -define(TRACE, [{debug, [trace]}]). 

    -define(DebugF(Msg, Args), 

            ts_utils:debug(?MODULE, Msg, Args, ?DEB)). 

    -define(Debug(Msg), 

            ts_utils:debug(?MODULE, Msg, ?DEB)). 

-else. 

    -define(TRACE, []). 

    -define(DebugF(Msg, Args), ok). 

    -define(Debug(Msg), ok). 

-endif. 

 

-define(EMERG, 0). % The system is unusable. 

-define(ALERT, 1). % Action should be taken immediately to address the problem. 

-define(CRIT, 2).  % A critical condition has occurred. 

-define(ERR, 3).   % An error has occurred. 

-define(WARN, 4).  % A significant event that may require attention has occurred. 

-define(NOTICE, 5).% An event that does not affect system operation has occurred. 

-define(INFO, 6).  % An normal operation has occurred. 

-define(DEB, 7).   % Debugging info 


对于0-6等级,我们可以直接设置。

对于7等级也就是debug模式,代码中我们也可以看到因为宏的原因(这里类似C的预编译用法),我们必须在编译时指定make debug。

【popexizhi: make debug&& make install 后确实post的发送json 就有log了】

 


2023年5月5日星期五

转:Tsung 环境搭建

 参考:https://blog.csdn.net/anndy_/article/details/120366681


Tsung运行环境安装

检查安装一下依赖包,以免在安装的时候报错.(操作系统的软件包完全安装时,这些包通常都会装进去,所有也可以跳过,此步骤,后面遇到问题时,少哪包再装哪个包,逐个解决。)

rpm -qa build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel

1

每个包系统盘或者镜像中都有。


安装 erlang、gnuplot、perl5

  • erlang :因为Tsung是基于erlang开发的,所以得先安装这个环境.安装软件
  • perl5:生成报表的脚本支持环境
  • gnuplot:报表统计图片生成工具
  • libtemplate-perl: 生成报表所需的画图模板库

erlang安装

admin@iZa:~$ sudo yum install erlang


设置环境变量以便下一步安装Tsung时使用


admin@iZa:~$ export PATH=$PATH:/usr/local/erlang/bin/

验证erlang是否安装成功

admin@iZa:~$ erl


​​


gnuplot、perl5、libtemplate-perl安装


admin@iZa:~$ sudo yum install perl5 gnuplot libtemplate-perl


验证安装后的版本

admin@iZa:~$ perl –v 

admin@iZa:~$ gnuplot


Tsung安装

1、到官网下载安装包 http://tsung.erlang-projects.org (最新版本为1.7.0)

admin@iZa:~$ sudo wget http://tsung.erlang-projects.org/dist/tsung-1.7.0.tar.gz

2、解压缩安装包

admin@iZa:~$ sudo chmod 777 tsung-1.7.0.tar.gz

admin@iZa:~$ sudo tar zvxf tsung-1.7.0.tar.gz 

3、编译安装

admin@iZa:~$ cd tsung-1.7.0/

admin@iZa:~/tsung-1.7.0$ sudo ./configure --prefix=/usr/local/tsung

admin@iZa:~/tsung-1.7.0$ sudo make

admin@iZa:~/tsung-1.7.0$ sudo make install

4、验证是否安装成功,先做个软连接方便使用tsung命令

admin@iZa:~$ sudo ln -s /usr/local/tsung/bin/tsung /usr/bin/  

admin@iZa:~$ tsung