zoukankan      html  css  js  c++  java
  • LR中的时间戳函数web_save_timestamp_param

    以前真没注意过后面看某个群有人说到这个函数一查,还真有,那么处理时间戳就简单很多了,我们经常在各种网站上看到类似于这样的时间戳

    1302245899530
    51Testing软件测试网"d bLq!uR&am
    做时间戳的目的是为了JS缓存和防止CSRF,在LR中可以简单的使用下面这个函数

    web_save_timestamp_param

    来生成时间戳
     

     web_save_timestamp_param("tStamp", LAST);  

     lr_output_message("%s",lr_eval_string("{tStamp}"));

    brokerDetail.c(49): web_save_timestamp_param("web_save_timestamp_param") was successful   [MsgId: MMSG-26392]
    brokerDetail.c(53): 1433760182344

    我想生成唯一的一个用户名。想到用web_save_timestamp_param函数。web_save_timestamp_param function saves the current timestamp to LoadRunner parameter. Timestamp is the number of milliseconds since midnight January 1st, 1970 (also known as Unix Epoch).
    说这个函数是存储毫秒级的时间戳。而我刚取到的时间戳是1302245899530,这个时间戳我完全看不懂呀!跟时间不搭边呀现在时间是14:58分钟。

    后来才发现取到的时间戳是现在时间减去现在的时间 减去 1970年1月1日0点00 的时间 ,然后换算成毫秒。

    Lr_save_datetime函数的使用

     

        最近几天在录制测试脚本,希望能有一个方法自动保存系统时间,以便能够更好的进行分辨,于是在LR的帮助函数中查找到了lr_save_datetime函数,一试验,感觉非常不错,满足了我的要求,下面就将lr_save_datetime函数的使用方法记载下来,以便后用:

    <!--[if !supportEmptyParas]--> <!--[endif]-->

    函数原型:

    voidlr_save_datetime(const char *format,intoffset,const char *name);

    <!--[if !supportEmptyParas]--> <!--[endif]-->

    format期望输出的日期格式比如说%Y、%m、%d、%X等等

    <!--[if !supportEmptyParas]--> <!--[endif]-->

    offset:类似与表示时间的一些关键字常量,主要有DATE_NOW, TIME_NOW, ONE_DAY, ONE_HOUR, ONE_MIN,他们可以单独使用,也可以联合使用,比如DATE_NOW + TIME_NOW

    <!--[if !supportEmptyParas]--> <!--[endif]-->

    name:期望将时间保存到的那个参数的名称

    <!--[if !supportEmptyParas]--> <!--[endif]-->

    举例:

    lr_save_datetime(“%Y-%m-%d %x”,DATE_NOW+TIME_NOW,“DateTimeParam”);

    lr_output_message(lr_eval_string("Now is {DateTimeParam}"));

    loadrunner函数 lr_save_datetime
    
    
    
    今天到51testing的blog里查看文章《Loadrunner获取当前系统时间》的回复,51testing的网友persist提到了一个lr函数实现的方法也可以实现,在这里非常感谢persist;只有
    
    交流和不断的学习,我们的技术水平才能进步哈!!
    
    本人在51testing的blog全部为原创,转载请注明!!
    
    扯的有点远了,还是看这个函数吧!!
    
     
    
    【lr_save_datetime】
    
    void lr_save_datetime(const char *format, int offset, const char *name);
    
    中文解释:
    lr_save_datetime将当前日期和时间,或具有指定偏移的日期和时间保存在参数中。如果达到MAX_DATETIME_LEN个字符,结果字符串将被截断。
    
    参数说明:
    1、const char *format
       格式化信息
       同fopen、lr_message等相同;例如:"the first is %s"
    
    2、int offset
       时间的偏移量
         DATE_NOW(现在的日期)
         TIME_NOW(现在的时间)
         ONE_DAY(一天的时间)
         ONE_HOUR(一小时的时间)
         ONE_MIN(一分钟的时间)
    
       需要注意的是,时间的偏移量可以使用公式,例如:DATE_NOW+ONE_DAY
    
       这样,我们就可以取得昨天、明天的日期了
         DATE_NOW-ONE_DAY(昨天)
         DATE_NOW+ONE_DAY(明天)
    
       那么,我们就可以使用如下表示得到前天的日期
         lr_save_datetime("%Y-%B-%d",DATE_NOW-2*(ONE_DAY),"abc");
         lr_save_datetime("%Y-%B-%d",DATE_NOW-2*24*(ONE_HOUR),"abc");
         lr_save_datetime("%Y-%B-%d",DATE_NOW-2*24*60*(ONE_MIN),"abc");
    
       当然,我们也可以使用如下表示2个小时后的时间
         lr_save_datetime("%H:%M:%S",TIME_NOW+2*(ONE_HOUR),"ab");   
         lr_save_datetime("%H:%M:%S",TIME_NOW+2*60*(ONE_MIN),"ab");
     
    
    3、const char *name
       参数保存的参数名;使用时lr_eval_string("{参数名}")
    
    示例如下:
    ===========================================
    Action()
    {
        lr_save_datetime("%y-%b-%d",DATE_NOW-2*24*(ONE_HOUR),"abc");
         //保存前天的日期到参数abc中
        lr_message("the day before yesterday is:%s",lr_eval_string("{abc}"));
         //输出abc的值
        lr_save_datetime("%H:%M:%S",TIME_NOW+2*(ONE_HOUR),"ab");
         //保存2个小时后的时间到参数ab中
        lr_message("the time after two hour is:%s",lr_eval_string("{ab}"));
         //输入ab的值
        return 0;
    }
    
    
    执行结果如下:
    the day before yesterday is:07-七月-04
    the time after two hour is:15:33:41
    ===========================================
    
    
    附:《lr_save_datetime格式参数表》
    %a 星期几的简写
    %A 星期几的全称
    %b 月分的简写
    %B 月份的全称
    %c 标准的日期的时间串
    %C 年份的后两位数字
    %d 十进制表示的每月的第几天
    %D 月/天/年
    %e 在两字符域中,十进制表示的每月的第几天
    %F 年-月-日
    %g 年份的后两位数字,使用基于周的年
    %G 年分,使用基于周的年
    %h 简写的月份名
    %H 24小时制的小时
    %I 12小时制的小时
    %j 十进制表示的每年的第几天
    %m 十进制表示的月份
    %M 十时制表示的分钟数
    %n 新行符
    %p 本地的AM或PM的等价显示
    %r 12小时的时间
    %R 显示小时和分钟:hh:mm
    %S 十进制的秒数
    %t 水平制表符
    %T 显示时分秒:hh:mm:ss
    %u 每周的第几天,星期一为第一天 (值从0到6,星期一为0)
    %U 第年的第几周,把星期日做为第一天(值从0到53)
    %V 每年的第几周,使用基于周的年
    %w 十进制表示的星期几(值从0到6,星期天为0)
    %W 每年的第几周,把星期一做为第一天(值从0到53)
    %x 标准的日期串
    %X 标准的时间串
    %y 不带世纪的十进制年份(值从0到99)
    %Y 带世纪部分的十制年份
    %z,%Z 时区名称,如果不能得到时区名称则返回空字符。
    %% 百分号
    
  • 相关阅读:
    Yii2的View中JS代码添加
    Yii2命名规则
    Yii2 Redis的使用
    win7下php5.6安装redis扩展
    Ubuntu安装cuda
    Ubuntu 安装显卡驱动
    TensorFlow 图片resize方法
    anaconda的kernel对jupyter可见
    cuda和显卡驱动版本
    jupyter修改根目录
  • 原文地址:https://www.cnblogs.com/qmfsun/p/4561705.html
Copyright © 2011-2022 走看看