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)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 大新县| 石楼县| 资兴市| 秭归县| 永济市| 含山县| 石泉县| 辉县市| 乐平市| 同心县| 固安县| 习水县| 南丰县| 淅川县| 凤山市| 湄潭县| 织金县| 聂拉木县| 察哈| 天镇县| 鄂托克旗| 华安县| 延津县| 奉贤区| 新竹县| 离岛区| 垣曲县| 遂溪县| 密山市| 宁强县| 平凉市| 博罗县| 徐水县| 墨竹工卡县| 海淀区| 日照市| 陇南市| 曲周县| 珠海市| 吴旗县| 育儿|