为第一个窗体的三个按钮编写相应代码如下:
private void ResScan_Btn_Click(object sender, EventArgs e) { if (_appScan.Scan.Status.ExploreOpStatus == ExploreStatus.Finished) { return; } _appScan.Scan.ResetExploreAndTestData(); _appScan.Scan.ScanAsync(true, false); } private void ResTst_Btn_Click(object sender, EventArgs e) { _appScan.Scan.ScanAsync(false, true); ResTst_Btn.Enabled = false; } private void ShowResult_Btn_Click(object sender, EventArgs e) { ResultForm resultform = new ResultForm(_appScan); resultform.Show(); } |
ResScan_Btn_Click()
:Resource Scan 响应代码,这部分代码判断 AppScan 的资源扫描是否已经结束,如果没有结束则运行异步扫描。ResTst_Btn_Click()
:异步测试,在测试运行后将“Resource Test”按钮置成不可用状态。- ShowResult_Btn_Click():打开结果显示表单。
在上面的代码实现中,方法 ResTst_Btn_Click()
在执行中将按钮置成为不可用状态,需要在测试结束后再次将按钮激活,这就需要利用 AppScan 的事件。AppScan 定义了近四十种事件,来支持 AppScan 扩展能够对 AppScan 的处理做出相应,比如下面几种:
ExploreEnded
:当一次对目标网站资源扫描结束时发出。ExploreStarting
:当一次对目标网站资源扫描结束时发出 .Login
:当 AppScan 需要用户手工登录到目标网站时发出SaveEnded
:保存操作结束时发出SaveProgress
:保存操作在报告进度时发出TestEnded
:对目标网站进行测试时发出TestStarting
:对目标网站的测试开始时发出 .
这里使用了 TestEnded
事件,表示当安全测试结束时,重新激活“Resource Test”按钮。在按钮窗体的构造函数中加入如下代码:
_appScan.Scan.TestEnded += new EventHandler<Watchfire.AppScan.Scan.Events.TestEndedEventArgs>(testEnded); |
上面代码中的 testEnded
方法负责激活按钮。
文章来源于领测软件测试网 https://www.ltesting.net/