国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

章魚教你自動生成json數(shù)據(jù)來測試~

sean / 1402人閱讀

摘要:如果手動的維護(hù)編寫格式的數(shù)據(jù)是很麻煩的,所以推薦生成數(shù)據(jù)來方便我們進(jìn)行接口的測試。用真實數(shù)據(jù)測試將使你的應(yīng)用程序更加健壯,因為你會有可能發(fā)現(xiàn)生產(chǎn)前一天發(fā)布的錯誤。

如果你正在測試一個線上產(chǎn)品,你會想確保你的密切模擬生產(chǎn)環(huán)境條件下的測試。在生產(chǎn)中,你將有用戶的軍隊在你的應(yīng)用程序乒乒乓乓,并用數(shù)據(jù)填充數(shù)據(jù)庫,這是你的代碼壓力。更糟的是,你輸入的數(shù)據(jù)將偏向你自己的使用模式,將不符合實際使用,可能會留下嚴(yán)重的錯誤未被發(fā)現(xiàn)。某些應(yīng)用程序框架,如作為Ruby on Rails的,有很大的數(shù)據(jù)庫。但并不是每個人都是程序員,有時間去學(xué)習(xí)一個新的框架,或者是隨意采用一個新的平臺。

當(dāng)我們進(jìn)行測試的時候,可能會有需要進(jìn)行批量的驗證賬號和密碼的可用性。如果手動的維護(hù)編寫json格式的數(shù)據(jù)是很麻煩的,所以推薦生成json數(shù)據(jù)來方便我們進(jìn)行api接口的測試。

參數(shù)名 參數(shù)類型 必須
userId String
password String

首先我們先使用Java模擬一個數(shù)據(jù)并生成一個接口需要的json數(shù)據(jù)(開始啦~~)

/**
 * User基礎(chǔ)類
 */
public class User{
    private String userId;
    private String password;

    public User(){
        
    }
    
    public User(String userId, String password){
        this.userId = userId;
        this.password = password;
    }
    
    /**省略get和set方法**/
}

/**
 * 模擬數(shù)據(jù)測試類
 */
public class TestUser{
    @Test
    public void test(){
        User user1 = new User("TestUser01", "eyJtZW1iZXJMaXN0I");
        /*
         * 這里我們已經(jīng)模擬好了1個用戶數(shù)據(jù)了。
         * 如果我們需要將他們變?yōu)閖son格式的數(shù)據(jù)則需要借用工具來實現(xiàn)
         * 例如常見的jackson,fastjson,和gson
         * 這里使用fastjson作為示范,請看官們自備fastjson的jar包
         * http://repo1.maven.org/maven2/com/alibaba/fastjson/
         */
         
        String jsonStr = JSON.toJSONString(user1);
        
        System.out.println(jsonStr);
    }
}

控制臺會輸出:
{"userId":"TestUser01","password":"eyJtZW1iZXJMaXN0I"}

看,這樣我們就擁有了簡單的單個數(shù)據(jù)的json格式啦

這些用戶名和密碼都是事先指定好的,可以寫在程序里面,也可以批量的寫在txt文檔中,如果有多個用戶,可以一行寫一個用戶名和密碼。一般用戶名和密碼之間用一個空格分隔就行了,因為用戶名和密碼一般情況下都是不允許使用空格的,分割符可以根據(jù)情況更換,但是需要注意,分割符不允許能在兩個字段出現(xiàn)的。

現(xiàn)在我們來實現(xiàn)從文本中批量的讀取數(shù)據(jù),并生成我們需要的json格式:
有一個text文本:
user.txt

TestUser01 eyJtZW1iZXJMaXN0I
TestUser02 Q4US8wIiwibGFpeXV
TestUser03 ajVnRXVxWlZyQUNWS
TestUser04 oi6Zi/6IO257OV5Lu
TestUser05 In0seyJhZGRyZXNzI
TestUser06 wiaWNvblVybCI6IiI

文本里面記錄了多個用戶信息,這里是6個哦

public static List readUserText() {
    File file = new File("text.txt");
    List data = new LinkedList<>();
    try (BufferedReader br = new BufferedReader(
            new InputStreamReader(new FileInputStream(file), "utf-8"))) {
        String readLine = null;
        while (null != (readLine = br.readLine())) {
            String[] userData = readLine.split(" ");
            data.add(new User(userData[0], userData[1]));
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return data;
}

然后我們一行一行的讀取,把每行拆分,并封裝成用戶數(shù)據(jù),最后放到List數(shù)組中。
最后我們把模擬的數(shù)組數(shù)據(jù)轉(zhuǎn)換成數(shù)組型的json數(shù)據(jù)

@Test
public void test2(){
    List data = readUserText();
    String jsonStr = JSON.toJSONString(data);
    System.out.println(jsonStr);
}

控制臺會輸出

[{"password":"eyJtZW1iZXJMaXN0I","userId":"TestUser01"},{"password":"Q4US8wIiwibGFpeXV","userId":"TestUser02"},{"password":"ajVnRXVxWlZyQUNWS","userId":"TestUser03"},{"password":"oi6Zi/6IO257OV5Lu","userId":"TestUser04"},{"password":"In0seyJhZGRyZXNzI","userId":"TestUser05"},{"password":"wiaWNvblVybCI6IiI","userId":"TestUser06"}]

現(xiàn)在我們看到的json數(shù)據(jù)是屬于壓縮的格式,所以可讀性并不高,我們需要格式化一下這些json數(shù)據(jù),也就是俗稱的美化~ ~

[
    {
        "password":"eyJtZW1iZXJMaXN0I",
        "userId":"TestUser01"
    },
    {
        "password":"Q4US8wIiwibGFpeXV",
        "userId":"TestUser02"
    },
    {
        "password":"ajVnRXVxWlZyQUNWS",
        "userId":"TestUser03"
    },
    {
        "password":"oi6Zi/6IO257OV5Lu",
        "userId":"TestUser04"
    },
    {
        "password":"In0seyJhZGRyZXNzI",
        "userId":"TestUser05"
    },
    {
        "password":"wiaWNvblVybCI6IiI",
        "userId":"TestUser06"
    }
]

看,是不是清晰多了~ ~ ~

當(dāng)你的測試數(shù)據(jù)庫中充滿了逼真的數(shù)據(jù),你會更多地參與作為一個測試儀。當(dāng)你表現(xiàn)出新的特征的人,他們會明白他們更快。真實的數(shù)據(jù)是多種多樣的,包含字符,不玩弄你的代碼,如省略號,或從其他語言中的Unicode字符。用真實數(shù)據(jù)測試將使你的應(yīng)用程序更加健壯,因為你會有可能發(fā)現(xiàn)生產(chǎn)前一天發(fā)布的錯誤。

作者信息
原文作者M(jìn)axleap團隊_云服務(wù)研發(fā)成員:Sunny Zhang【原創(chuàng)】
力譜宿云 LeapCloud 團隊首發(fā):https://blog.maxleap.cn/archi...
歡迎關(guān)注微信訂閱號:MaxLeap_yidongyanfa

相關(guān)閱讀
Amazon和Mysql之間的那點事兒
當(dāng)我們說數(shù)據(jù)挖掘的時候我們在說什么

作者往期佳作
單元測試和集成測試業(yè)務(wù)應(yīng)用程序

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/66127.html

相關(guān)文章

  • IntelliJ IDEA 2017.1 EAP與異步堆棧跟蹤調(diào)試器擴展

    摘要:帶有一個新的調(diào)試器捕獲這改變了堆棧跟蹤相關(guān)各部分用異步代碼執(zhí)行接收器與相應(yīng)地區(qū)的堆棧跟蹤捕獲的異步代碼傳遞發(fā)送方。 反應(yīng)性編程趨勢后,我們的代碼越來越異步。 showImg(https://cscdn.maxleap.cn/2.0/download/NTZmMGQ0NzdhNWZmN2YwMDAxZWJlMjg1/zcf-1eb1a6d0-09be-4382-ad89-8c640cc4...

    趙春朋 評論0 收藏0
  • 辭掉房地產(chǎn)中介、賣章魚小丸子遇到困難、最后被逼無奈選擇軟件測試實現(xiàn)月薪24K...

    摘要:希望大家能在這個成長過程中收益良多。以后的生活就輕松很多。正所謂萬事開頭難,只要邁出了第一步,你就已經(jīng)成功了一半,古人說的好不積跬步,無以至千里。等到完成之后再回顧這一段路程的時候,你肯定會感慨良多。 ...

    lx1036 評論0 收藏0
  • 當(dāng)時,章魚保羅做的預(yù)測,現(xiàn)在有企業(yè)專門在做了

    摘要:數(shù)據(jù)庫無法根據(jù)業(yè)務(wù)分?jǐn)倝毫Γ瑔问Ч?jié)點多,事故也頻繁出現(xiàn)。這是智慧摩羯這時簡單的架構(gòu)圖,是單一的節(jié)點庫,增加了很多運維腳本,當(dāng)時在上就有幾十臺。開發(fā)人員變多,出現(xiàn)的事故概率增大,系統(tǒng)升級的風(fēng)險變高。 2010 年南非世界杯,「預(yù)言帝」章魚保羅搶走了原本屬于球星的風(fēng)頭,它精準(zhǔn)的預(yù)測了德國國家隊的比賽結(jié)果;現(xiàn)實中,我們每個人也會對比賽結(jié)果進(jìn)行娛樂性的預(yù)測,關(guān)注自己喜歡的球隊,而有這么一家專...

    baishancloud 評論0 收藏0
  • 模仿飛蛾識別味道的神經(jīng)網(wǎng)絡(luò),說明了為什么飛蛾學(xué)習(xí)速度遠(yuǎn)超機器

    摘要:在飛蛾腦中,章魚胺可以幫助加強產(chǎn)生成功的神經(jīng)線路。廣泛來說,此項研究成果可能給人工神經(jīng)網(wǎng)絡(luò)領(lǐng)域帶來極大的影響。 作為現(xiàn)代機器學(xué)習(xí)基石的深度神經(jīng)網(wǎng)絡(luò),雖然模仿的是生物神經(jīng)網(wǎng)絡(luò),但其實這兩者之間有著極大的區(qū)別。拋開僅有的一些相似處,有些重要的機器學(xué)習(xí)機制沒有任何自然界的版本,而這兩者學(xué)習(xí)過程之間也有著大量的不同。這些區(qū)別很有可能解釋了為什么機器學(xué)習(xí)系統(tǒng)在某些領(lǐng)域中的表現(xiàn)遠(yuǎn)遜于自然系統(tǒng)。就拿昆蟲來...

    hizengzeng 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<