<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Data-Processer模擬數(shù)據(jù)生成器

          聯(lián)合創(chuàng)作 · 2023-09-28 12:31

          Data-Processer

          簡介

          1、是什么?

          它是一個模擬數(shù)據(jù)生成器。我們在測試過程中,產(chǎn)生完整、全面的真實數(shù)據(jù)可能比較困難。我們可以根據(jù)需求,創(chuàng)建對應的模版和詞典,利用數(shù)據(jù)模擬生成器生成我們需要的模擬數(shù)據(jù)。

          2、能做什么?

          他能夠根據(jù)構建的模版和詞典,生成我們需要的數(shù)據(jù)。

          三個應用場景:
          • 測試場景

            : 測試過程中,我們需要驗證數(shù)據(jù)后端的功能或性能,此時,需要降低與數(shù)據(jù)產(chǎn)生端的耦合,那么需要一個穩(wěn)定優(yōu)秀的數(shù)據(jù)生成器,來持續(xù)的不間斷的產(chǎn)生正確的數(shù)據(jù),和特殊情況下的異常數(shù)據(jù)。

          • 持續(xù)集成場景:

               在整個持續(xù)集成場景中,一個或多個模塊組成一個平臺,需要有源源不斷的數(shù)據(jù)進入持續(xù)集成環(huán)境,用以自動化地完成測試和迭代工作,使用Data-Processer則可以通過數(shù)據(jù)樣本的指定和簡單的編碼,非常簡單地完成這個需求。

          • 生產(chǎn)場景

            : 在一個項目完成測試和迭代,發(fā)布到生產(chǎn)環(huán)境之后,通常也需要進行持續(xù)的功能或可用性監(jiān)測,那么則需要有各種正?;虍惓?shù)據(jù)按照某種規(guī)則和定義,持續(xù)穩(wěn)定地生產(chǎn)并送回平臺,此時將持續(xù)集成場景中的case,只需通過簡單配置,則可以進行生產(chǎn)的驗證,以滿足這個需求。

          3、架構

          數(shù)據(jù)生成器包括:模版變量提取,模版變量執(zhí)行,模版變量替換組成,三部分組成

          4、術語:
          • 函數(shù)變量:模版和詞典中以"$Func{"開頭,以"}"結尾的字符串是一個函數(shù)變量。形如:$Func{intRand()},其中,intRand()為內(nèi)置函數(shù)。不支持函數(shù)嵌套

          • 詞典變量:模版中以"$Dic{"開頭,以"}"結尾的字符串是一個詞典變量。形如:$Dic{name},其中,name為詞典文件中的一個詞典名。

          • 自定義變量:模版中以"$Var{"開頭,以"}"結尾的字符串是一個自定義變量。形如:$Var{tmp},其中,tmp是自定義變量名。自定義變量需要與函數(shù)變量或者詞典變量聯(lián)合使用,中間以"="隔開,且無空格。 定義方式:$Var{tmp}=$Func{doubleRand(0,10,2)}。引用方式是;$Var{tmp}

          5、內(nèi)置函數(shù)
          • long timestamp() 生成當前13位時間戳(ms)。

          • int intRand() 生成int正隨機整數(shù)。

          • int intRand(Integer n) 生成0~n的隨機整數(shù)。

          • int intRand(Integer s, Integer e) 生成s~e的隨機整數(shù)。

          • long longRand() 生成long正隨機整數(shù)。

          • double doubleRand() 生成0~1.0的隨機雙精度浮點數(shù)。

          • doubleRand(Integer s, Integer e, Integer n) 生成s~e的保留n位有效數(shù)字的浮點數(shù)。

          • String uuid() 生成一個uuid。

          • String numRand(Integer n) 生成n位隨機數(shù)。

          • String strRand(Integer n) 生成n位字符串,包括數(shù)字,大小寫字母。

          6、怎么用?

          使用之前,需要引入simulatedata-generator的jar包。

          (1) 編譯:在simulatedata-generator目錄下執(zhí)行:

          $ mvn clean package

          在target目錄下可以看到生成了simulatedata-generator-0.0.1-SNAPSHOT.jar文件。 應用中引入此文件作為依賴即可。

          (2) 編輯詞典

          詞典中含有模版中需要的常量以及函數(shù),詞典文件以dic為后綴名,test.dic詞典文件形如:
              name=xiaoming|||hanmeimei|||lilei
              reqUrl=http://www.abc.com/a/b/c|||http://www.def.com/d/e/f
              tmp=$Func{intRand(1000000000, 1999999999)}
              b=testVar
              ot=$Func{intRand(2)}

          等號前面是詞典名,等號后面是詞典值,值可以是字符串,也可以是函數(shù)變量,多個值用"|||"隔開。如果有多個值,取值時,會隨機取其中一個值作為詞典變量值。 注意:詞典文件放置在應用跟目錄下的dictionaries目錄下。

          (3) 編輯模版

          模版文件以tpl后綴名,test.tpl模版文件形如:
           {
              "infos":{
                  "d_id": $Func{intRand()},
                  "version": $Var{tmp}=$Func{doubleRand(0,10,2)},
                  "os_type": "$Dic{ot}",
                  "os": "$Var{tmp}",
                  "test": "$Dic"
                  }
           }

           在模版文件中,在需要的地方放置變量(函數(shù),詞典,或者自定義),變量定義方式如第三點(術語)所述。在上面的模版中,version取值是$Func{doubleRand(0,10,2)}的值,然后將$Func{doubleRand(0,10,2)}的值賦給$Var{tmp},在下面os處,以$Var{tmp}方式引用。這樣,version和os的取值就一樣了。

          (4) 調(diào)用Api執(zhí)行

          //加載詞典
           DicInitializer.init();
           //創(chuàng)建模版分析器
           TemplateAnalyzer testTplAnalyzer = new TemplateAnalyzer(tplName, tpl);
           //分析模版生成模擬數(shù)據(jù)
           testTplAnalyzer.analyse();

          使用示例

          //加載詞典(只需執(zhí)行一次即可)
           DicInitializer.init();
           //編輯模版
           String tplName = "abc.tpl";
           String tpl = "My name is $Dic{name}, my age is $Func{intRand(1,5)}";
           //創(chuàng)建模版分析器(一個模版new一個TemplateAnalyzer對象即可)
           TemplateAnalyzer testTplAnalyzer = new TemplateAnalyzer(tplName, tpl);
           //分析模版生成模擬數(shù)據(jù)
           String abc = testTplAnalyzer.analyse();
           //打印分析結果
           System.out.println(abc);
          瀏覽 24
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  特级西西444www无码视频免费看 | 天堂国产在线 | 超碰在线欧美 | 免费毛片18女人毛片大全在线看 | 亚洲国产热|