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

資訊專欄INFORMATION COLUMN

章魚教你自動生成json數據來測試~

sean / 1407人閱讀

摘要:如果手動的維護編寫格式的數據是很麻煩的,所以推薦生成數據來方便我們進行接口的測試。用真實數據測試將使你的應用程序更加健壯,因為你會有可能發現生產前一天發布的錯誤。

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

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

參數名 參數類型 必須
userId String
password String

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

/**
 * User基礎類
 */
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方法**/
}

/**
 * 模擬數據測試類
 */
public class TestUser{
    @Test
    public void test(){
        User user1 = new User("TestUser01", "eyJtZW1iZXJMaXN0I");
        /*
         * 這里我們已經模擬好了1個用戶數據了。
         * 如果我們需要將他們變為json格式的數據則需要借用工具來實現
         * 例如常見的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"}

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

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

現在我們來實現從文本中批量的讀取數據,并生成我們需要的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;
}

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

@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"}]

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

[
    {
        "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"
    }
]

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

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

作者信息
原文作者Maxleap團隊_云服務研發成員:Sunny Zhang【原創】
力譜宿云 LeapCloud 團隊首發:https://blog.maxleap.cn/archi...
歡迎關注微信訂閱號:MaxLeap_yidongyanfa

相關閱讀
Amazon和Mysql之間的那點事兒
當我們說數據挖掘的時候我們在說什么

作者往期佳作
單元測試和集成測試業務應用程序

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/66127.html

相關文章

  • IntelliJ IDEA 2017.1 EAP與異步堆棧跟蹤調試器擴展

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

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

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

    lx1036 評論0 收藏0
  • 當時,章魚保羅做的預測,現在有企業專門在做了

    摘要:數據庫無法根據業務分攤壓力,單失效節點多,事故也頻繁出現。這是智慧摩羯這時簡單的架構圖,是單一的節點庫,增加了很多運維腳本,當時在上就有幾十臺。開發人員變多,出現的事故概率增大,系統升級的風險變高。 2010 年南非世界杯,「預言帝」章魚保羅搶走了原本屬于球星的風頭,它精準的預測了德國國家隊的比賽結果;現實中,我們每個人也會對比賽結果進行娛樂性的預測,關注自己喜歡的球隊,而有這么一家專...

    baishancloud 評論0 收藏0
  • 模仿飛蛾識別味道的神經網絡,說明了為什么飛蛾學習速度遠超機器

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

    hizengzeng 評論0 收藏0

發表評論

0條評論

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