fiddlercore を使用してセッション情報をキャプチャし、特定の応答のデータを比較しています。私が理解していないことに気付いていることの 1 つは、2 番目の環境から最初の List コレクションにセッション情報を取得していることです。
public class ManageCompares
{
public static string _test2BaseURL = "https://test2/";
public static string _dev1BaseURL = "http://dev1/";
private void RunCompares(string email, string handler, Reporting report)
{
ManageProcess.ShutDownProcess("iexplore");
RunExports exportTest2 = new RunExports();
RunExports exportDev1 = new RunExports();
string password = "d";
List<Session> oAllSessions_Test2 = exportTest2.RunExportGeneration
(email, password, _test2BaseURL, handler);
ManageProcess.ShutDownProcess("iexplore");
List<Session> oAllSessions_Dev1 = exportDev1.RunExportGeneration
(email, password, _dev1BaseURL, handler);
exportTest2.ExtractResponse(oAllSessions_Test2, handler, report);
//report.SetEnvironment2Body(ManageExports.ExtractResponse
// (oAllSessions_Dev1, handler, report, report.Environment2));
if (report.Test2ResponseCode != 500 && report.Dev1ResponseCode != 500)
{
bool matches = CompareExports.CompareExportResults
(report.Environment1Body, report.Environment2Body);
if (matches)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Exports matched");
Console.ResetColor();
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Export does not match");
Console.ResetColor();
report.GenerateReportFiles();
}
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine
("A exception was returned. Please review the log file.");
Console.ResetColor();
}
}
}
public class RunExports
{
public List<Session> RunExportGeneration
(string email, string password, string baseUrl,
string handlersUrlwithParams)
{
IWebDriver driver = new InternetExplorerDriver();
FiddlerApplication.Startup(8877, FiddlerCoreStartupFlags.Default);
List<Session> oAllSessions = new List<Session>();
LoginPage login = new LoginPage(driver);
FiddlerApplication.AfterSessionComplete += delegate(Session oS)
{
Monitor.Enter(oAllSessions);
oAllSessions.Add(oS);
Monitor.Exit(oAllSessions);
};
try
{
driver.Navigate().GoToUrl(baseUrl);
login.LoginToView(email, password);
driver.Navigate().GoToUrl(baseUrl + handlersUrlwithParams);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
FiddlerApplication.Shutdown();
driver.Quit();
}
return oAllSessions;
}
}
List oAllSessions_Test2 と List oAllSessions_Dev1 は、私の 2 つのコレクションです。キャプチャをデバッグすると、通常、oAllSessions_Test2 コレクションに 15 行が表示されます。次に、oAllSessions_Dev1 をキャプチャした後、カウントが 14 または 15 に跳ね上がっていることがわかります。コレクションに含まれるものを見ると、Dev1 キャプチャの一部がそこにあります。oAllSessions_Dev1 には、私が期待しているセッションだけがあります。予期していない場所にポインターがあるに違いないと推測していますが、この時点でそれをクリアする方法に困惑しています。私が気付いているもう 1 つのことは、アプリケーションがさまざまなケースを循環している間、セッション カウンターが増加し続けることです。
また、Selenium WebDriver と IE を使用してブラウザー セッションを開始していますが、この特定の問題に特に関連しているとは思いません。
それで、私はここで何が欠けていますか?