.net白盒测试
很久没写博客了,刚好这段时间空闲,做点记录
前提:最近部门需要白盒测试的工具,在网上也搜索了很多资料,国内很少有类似的资料(很少公司.net代码进行白盒测试),最后在国外(FQ)网站查找到了部分资料
白盒测试中的 条件覆盖、逻辑覆盖....这里就不解释了
用到的开源工具:Opencover、ReportGenerator(这两个开源工具就不在这里介绍了,百度有介绍)
开发语言:C#
白盒测试范围:web站点、exe执行文件
运行OpenCover需要一系列参数,这里只说明几个主要的参数:
-target:这是目标应用或服务的路径(名称),这里指单元测试工具的路径,支持NUnit和MS Unit
-targetdir:目标目录的路径,如果target argument已经包含了一个路径,那么这个参数可以提供一个查找pdb文件的可选路径
-targetargs:target参数指定的应用所需要的参数(编译测试工程生成的一个dll文件或者EXE文件路径)
-output:输出XML文件的路径,如果没有提供将在当前目录下生成results.xml, 该文件将用于ReportGenerator生成可视化的覆盖率报告
ReportGenerator所需要的参数:
-reports:上述XML文件的路径
-targetdir:生成报告的目录
string sExecShell = "{0} -register -target:\"{1}\" -output:{2} -targetdir:\"{3}\"";
public void Exec(OpenCoverModel.WebModel model, LibClass.OpenCoverModel.GlobalModel globalModel) { TransfEvent("Web模式,执行站点" + model.Site); string sOutput = model.OutPut + "\\" + model.Site; XMLEvent(sOutput + "\\" + model.Site + ".xml"); if (!Directory.Exists(sOutput)) { Directory.CreateDirectory(sOutput); } string sShell = string.Format(sCmdFromat, globalModel.OpenCover, @"C:\Program Files (x86)\IIS Express\iisexpress.exe", model.TargetDir, model.Site, globalModel.ApplicationHost, globalModel.Register, sOutput + "\\" + model.Site + ".xml"); Thread thread = new Thread(ThreadExec); thread.IsBackground = true; thread.Start(sShell); }
详细代码可以下载附件
https://files.cnblogs.com/files/jhy55/CodeAnalysis.zip
在执行以上命令之后会生成指定文件的数据(output)
通过ReportGenerator可以生成 html格式的可视化文档
string sCmd = "{0} -reports:{1} -targetdir:{2}";
生成html之后,index.html为主入口
先写到这里为止吧!有问题或者描述不对的请反馈
下一篇: NPOI导出
推荐阅读
-
黑盒测试是什么工作(黑盒测试和白盒测试的特点)
-
.net core 单元测试之 JustMock第一篇
-
Asp.Net Core 轻松学-利用xUnit进行主机级别的网络集成测试
-
.net core如何利用ConcurrentTest组件对方法进行压力测试详解
-
Asp.Net Core 单元测试正确姿势
-
Asp.Net Core 单元测试正确姿势
-
测试开源.net 混淆器ConfuserEx
-
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之菜单与测试(九)
-
ASP.NET页面进行GZIP压缩优化的几款压缩模块的使用简介及应用测试!(附源码)第1/2页
-
asp.net core 系列之允许跨域访问2之测试跨域(Enable Cross-Origin Requests:CORS)