本文目錄一覽:
如何將json的數據轉化成csv的數據格式
由於工作需要,經常需要將mysql資料庫中的數據導出到excel表格,或者需要將excel表格數據導入到mysql資料庫,我的方法是先將它們都轉換成一種中間數據格式csv(execl數據可以直接導出為csv格式,csv格式也可以直接用excel打開)。
如何用原生JS來把JSON數據處理成CSV格式
json轉csv的前提是,你的數據是jsonarray,而且只有比較特殊的數據可以在json和csv之間轉換,請轉換之前判斷數據是否可以轉換。
思路是,遍歷array里所有數據,將每條數據設置成一個jsonobject,如果拋出一場則條過這條數據continue到下一條。然後遍歷jsonobject的所有屬性,將每個屬性的值用逗號分割拼成字元串,所有屬性遍歷完畢後,判斷如果當前這條不是array的最後一條,則在字元串最後加上一個’\r’,否則不加。最終會拼成csv字元串。
JMeter斷言之JSON斷言
若伺服器返回的Response Body為JSON格式的數據,使用JSON斷言來判斷測試結果是較好的選擇。
首先需要根據JSON Path從返回的JSON數據中提取需要判斷的實際結果,再設置預期結果,兩者進行比較得出斷言結果。
下面首先介紹JSON與JSON Path相關的基礎知識。
▲ 什麼是JSON
● JSON(JavaScript Object Notation,JavaScript對象表示法)是一種輕量級的數據交換格式。
● JSON容易理解,便於閱讀和編寫;同時計算機也易於解析和生成,所以JSON有廣泛的應用。
JSON基於如下兩種結構:
1.名稱/值對的集合
在各種語言中,這可以作為對象(object)、記錄(record)、結構(struct)、字典(dictionary)、哈希表(hash table)、鍵控列表(keyed list)或關聯數組(associative array)來實現。
2.值的有序列表
在大多數語言中,這是以數組(array)、向量(vector)、列表(list)或序列(sequence)的形式實現的。
JSON用於描述文本數據結構,有如下形式:
1.對象(object)
對象是一組無序的名稱/值對。對象以{(左大括弧)開始,以}(右大括弧)結束。每個名稱後面跟著:冒號,名稱/值對之間用逗號分隔。
比如:
2.數組(Array)
數組是值的有序集合。數組以[(左中括弧)開始,以](右中括弧)結束。值之間用逗號分隔。
比如:
3.值(value)
值可以是字元串、數字、true/false、null、對象或數組。
4.字元串(string)
字元串是由零個或多個Unicode字元組成的序列,用雙引號括起來,使用反斜杠轉義。
字元表示為單個字元串。字元串非常類似於C或Java中的字元串。
5.數字(number)
一系列0-9的數字組合,可以為負數或者小數。還可以用e或者E表示為指數形式;數字非常類似於C或Java數字,但只是不使用八進位和十六進位格式。
6.空白符(whitespace)
可以在任意成對的語法符號之間插入空白符(包括空格、換行符、回車符、橫向製表符)。
▲ 什麼是JSONPath
我們經常使用XPath來分析、轉換以及有選擇地從XML文檔中提取數據。與XPath類似,JOSNPath可以方便從JSON結構中發現和提取數據。
JSONPath中的「根成員對象」總是被稱為$,無論它是對象還是數組。JSONPath表達式有「dot–notation」(.號)和「bracket–notation」([]號)兩種不同的表示風格。
例如,
▲ JSONPath語法元素
▲ JSONPath實例
JSON斷言可以對伺服器返回的JSON文檔進行驗證。
JSON斷言有兩種使用模式:
1.根據JSONPath能否在JSON文檔中找到路徑;
2.根據JSONPath提取值並對值進行驗證。
● 若文檔格式為非JSON則斷言失敗;
● 若找不到路徑斷言失敗;
● 若提取值與預期值不一致斷言失敗。
▲ 配置項
Assert JSON Path exists:
用於斷言的JSON元素的路徑(JSONPath)。
1.Additionally assert value
是否額外驗證根據JSONPath提取的值。
● 不勾選,驗證JSONPath能否在JSON文檔中找到路徑;
● 勾選,驗證根據JSONPath提取值是否預期。
2.Match as regular expression
預期值是否可以使用正則表達式。
● 不勾選,預期值不能使用正則表達式表示;
● 勾選,預期值可以使用正則表達式表示。
Expected Value:
預期值。
1.Expect null
● 若驗證提取的值為null,則勾選此項。
這裡有兩個地方需要額外注意:
a.驗證null值,還是需要勾選「Additionally assert value」,否則驗證的是JSONPath能否找到路徑;
b.預期值不填表示空字元,與null不等價。
2.Invert assertion(will fail if above conditions met)
● 若勾選,表示對斷言結果取反。
注意:
除了null外,還有一種特殊的值,就是空數組,預期值不能不填,需要設置為:[]
這裡仍以前面介紹過的查詢被購買商品的總金額介面為例來講述JSON斷言的用法。
該介面返回的響應數據為JSON,故可以使用JSON斷言。
▲ 操作步驟
1.對預期結果要驗證的項進行參數化
這裡驗證err_msg,result
將預期結果寫入csv文件中
比如:
2.添加JSON Assertion並進行配置
JSON斷言每次只能斷言一個參數,因此這裡需要添加多個JSON斷言。
假設對錯誤消息與商品金額這個兩個返回參數值做斷言。
▲ JSON斷言配置
1. 斷言錯誤消息:
2. 斷言商品金額:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/270353.html