在之前博客自定义Fiddler插件一中主要是实现了IRequestInspector2接口,这个接口主要是针对单个请求的,在写接口测试案例的时候也是对一个接口进行处理,如果想批量进行操作,那就可以使用ISessionExporter接口,这样在编写测试案例时可以一次多选几个请求,至于批量生成案例需要一些业务处理,这里就不一一说明,主要简单了解下ISessionExporter接口的使用。
一、新建类库
这里创建了一个SessionExporterInspectors的类库,还是和Fiddler插件一中一样,添加引用Fiddler,在AssemblyInfo.cs文件中引入[assembly: Fiddler.RequiredVersion("5.0.20173.49666")].
二、新建SessionExporter实现ISessionExporter接口类,这里只是做测试,所以直接获取oSessions[0],也没做任何处理,就是直接将session对应的request请求保存到指定文件中.这里有个地方需要注意,也是我遇到的一个坑,一直不知道ProfferFormat是做什么用的,同时也不知道在Fiddler导出时出现的下面的几个下拉框选项是怎么配置进去的.在网上找到参考的也都有这个ProfferFormat,没办法,我又反编译了下ImportExport文件下的BasicFormats.dll才知道,原来截图中的下拉框选项就是通过ProfferFormat配置的。这里我也进行了配置,编译之后把类库dll放到ImportExport,重启下Fiddler。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Fiddler; using System.Windows.Forms; namespace SessionExporterInspectors { [ProfferFormat("Cuiyw SessionExporter Test", "导出测试Cuiyw")] public class SessionExporter : ISessionExporter { public void Dispose() { } public bool ExportSessions(string sExportFormat, Session[] oSessions, Dictionary<string, object> dictOptions, EventHandler<ProgressCallbackEventArgs> evtProgressNotifications) { string fileName = SelectPath(); if (!string.IsNullOrEmpty(fileName)) { oSessions[0].SaveRequest(fileName,false); return true; } return false; } private string SelectPath() { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "文本文件|*.txt"; if (openFileDialog.ShowDialog() == DialogResult.OK) { return openFileDialog.FileName; } return string.Empty; } } }
三、导出
这里选中一个请求,File->Export Sessions->Selected Sessions,这里就会出现自定义的选项。然后选择要导出的文本文件的位置,就能把请求导出来了.
今天2018.7.8,农历5.25.值得纪念.