qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          LoadRunner生成唯一值

           LoadRunner生成唯一數
          void Main()
          {
          int i;
          char uStr[64];
          srand( (unsigned)time( NULL ) );// 最好放在vuser_init里
          for (i=0;i<10;i++) {
          GetUniqueString(i,uStr);
          lr_output_message(uStr);
          }
          }
          void GetUniqueString(int inValue,char *outStr)
          {
          int id, scid;
          char *vuser_group;
          lr_whoami(&id, &vuser_group, &scid);
          web_save_timestamp_param("tStamp", LAST);
          sprintf(outStr,"%s%05d%010d%04d",lr_eval_string("{tStamp}"),id,rand(),inValue);
          free(vuser_group);
          }
            建議把隨機種子(srand( (unsigned)time( NULL ) );)放在腳本初始化函數里,只需要初始化一次。若放在子函數里,每次調用都初始化一下的話,產生的隨機數可能是一樣的。是不安全的代碼!這個唯一數,有四關:毫秒級的時間+虛擬用戶ID+隨機數+傳入的參數;基本上在同一個Controller里不會出現重復了!再稍微處理一下就可以得到想法的東西了,譬如:LoadRunner實現:計算字符串Md5 加密成md5串,再改裝一下就成GUID了!
            這里有一個安全問題值得說明,隨機種子最好只初始化一次,隨機數的算法是和時間有一定關系的。若把隨機種子放在子函數里,你會發現生成出來的隨機數都是一樣的。
            不要驚訝,為什么說是個安全問題,說嚴重一點,隨機數是一種算法,有可能被別人劫獲并計算出下一個隨機值,故不安全!

          posted on 2013-12-25 10:36 順其自然EVO 閱讀(241) 評論(0)  編輯  收藏 所屬分類: loadrunner

          <2013年12月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 和硕县| 如东县| 大足县| 阜阳市| 神农架林区| 绥阳县| 景东| 远安县| 福海县| 东丰县| 微山县| 寿光市| 文成县| 大安市| 土默特右旗| 金平| 周至县| 彭阳县| 宁蒗| 巴彦淖尔市| 永清县| 岳普湖县| 信阳市| 兴城市| 通渭县| 岚皋县| 绵阳市| 明水县| 罗平县| 长海县| 松滋市| 堆龙德庆县| 弋阳县| 丰顺县| 岳普湖县| 鞍山市| 玉环县| 胶州市| 永春县| 禹州市| 新建县|