- 提取测试结果:
Appscan 的扫描结果是以树型结构存储在 appscan.scan.scanData
对象中,appscan.scan.scanData.AppTreeRoot
时这个树型结构的根节点。在 ResultForm
打开时,下面的代码就是递归方法从这个根节点中获取根节点及其所有子节点的扫描结果。
//Recusive to get all resources and related issues. private void visit(IAppTreeNode node, ArrayList totalIssues) { if (node.Children.Count > 0) { ICollection<IAppTreeNode> children = node.Children; foreach (IAppTreeNode child in children) { visit(child, totalIssues); } } else { IIssueType issueType = null; ICollection<IIssue> issues = node.GetIssues(); ScanResult scanResult; foreach (IIssue issue in issues) { issueType = issue.IssueType; scanResult = new ScanResult(); scanResult.ResourceURL = node.Path; scanResult.IssueDesc = issueType.Name; totalIssues.Add(scanResult); } } } |
- AppScan 扩展主表单加载时利用
Thread
打开新的线程来运行表单以避免发生内存错误:
public void Show() { Thread formThread = new Thread(new ThreadStart(ShowDialog)); formThread.SetApartmentState(ApartmentState.STA); formThread.Start(); } |
第 3 步:插件打包和运行
- 创建 info.xml
info.xml 文件是 AppScan 扩展点的定义文件,其中定义了如下元素:
FullName
:插件的完整名称;Description
:插件描述;Author
:插件编写人;HomepageURL
:插件主页地址;Version
:插件版本;Copyright
:版权描述信息;IconFile
:为插件指定的图片;TargetEdition
:插件的运行环境,用来制定 AppScan 的版次和版本信息;MainDllFile
:入口链接库文件,就是 IExtensionLogic 实现类所在的链接库。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/