[回到版面]
回應模式
名 稱
內 文
附加圖檔[] []
  • 可附加圖檔類型:GIF, JPG, JPEG, PNG, WEBM,瀏覽器才能正常附加圖檔
  • 附加圖檔最大上傳資料量為 3072 KB。
  • 當檔案超過寬 125 像素、高 125 像素時會自動縮小尺寸顯示
  • 目前附加圖檔使用量大小: 150284 KB / 500000 KB
  • 回覆時程式碼縮排會被trim消掉,請善用[code][/code]標色或貼到ideone等網站
  • LaTeX記法可以用「$$」或「\( \)」包起來,例如「$\sum_{k=1}^{k=n} k^2 = \frac{n(n+1)(n+2)}{6}$」
  • 投稿時請點擊畫像認證後,再按下 [送出] 按鈕提交。
  • 鬧板、攻擊性發言、煽動性發言請無視(回應者也無視),並使用del或在貓管理部向管理員回報。
  • 新介面尚處於測試階段,如果有任何問題可以向管理員或於程設交流版反映。

檔名:1538036197523.jpg-(176 KB, 1920x1080)
176 KB
無題無名18/09/27(四)16:16:37 ID:/YHCZY1cNo.12877
最近在幫公司寫一隻鴨力測試程式來測試公司的網站。
環境是 C#/WindowsForm。目前開了結構大致如下的
struct來作為統一的回傳。

struct PressureRecord{
public readonly DateTime StartDate;
public readonly DateTime EndDate;
public readonly TimeSpan Elapsed;
public readonly string TestSubject;
public readonly string TestConfig;
public readonly string TestResult;
public readonly string TestResultDetail;
public readonly string Parameters;

public PressureRecord(DateTime startDate,DateTime endDate, string testSubject,string testResult ,string testResultDetail,string parameters) {
StartDate = startDate;
EndDate = endDate;
Elapsed = new TimeSpan(endDate.Ticks - StartDate.Ticks);
TestSubject = testSubject;
Parameters = parameters;
TestResult = testResult;
TestConfig = "";
TestResultDetail = testResultDetail;
}

}



使用情境大致是:


//windows form

private void button1_click(/*沒背起來,省略*/){
for(var data in dataset){
PresureRecord test1=do_test1();//回傳PresureRecord
PresureRecord test2;
if(test1.TestResultDetail=="成功"){
test2=do_test2();
};
//寫log
}

}


目前的問題主要是在TestResultDetail上,本來設計的目的是要用來放傳回來完整回復。但現在發現因為JSON API,要判斷有沒有成功必須先parse一次。
然後前一個JSONAPI回傳的結果又可能會被下一個測試拿去用,重複parse怎麼看都浪費效能。
目前的計畫大致是想TestResultDetail的型別改成 Object,完全由後面的測試程式碼決定要如何cast他

//windows form
PressureRecord pr;
JObject wtever=(JObject) pr.TestResultDetail;


想問一下有沒有其他作法,或是不用用到Object那麼高的class。
無名18/09/29(六)11:57:34 ID:2/l6jgAMNo.12881
你可以用JObject.Parse, Custom Converters ...之類的. 但是你performance應該不會太多的改變...

你可以試看看JsonReader/JsonWriter.

https://www.newtonsoft.com/json/help/html/ReadingWritingJSON.htm
無名18/10/03(三)09:58:15 ID:3f3L9XcwNo.12882
最後決定的做法是 struct維持原樣不動。
用out關鍵字來送出測試的結果。
城市碼大概像這樣:

PressureTestResult testV2(string url,out HtmlDocument doc){
PressureTestResult result=testV1(url);
doc=new HtmlDocument();
doc.LoadHtml(reuslt.detail);
return result;
}

PressureTestResult testV1(string url){
//一堆測試
return new PressureTestResult(xxx,xxx,x,xx) ;

}



【刪除文章】[]
刪除用密碼: