我目前正在开发我的第一个负载测试,所以请多多包涵~
负载测试本身正在运行一组单元测试,将不同的请求发布到 HTTP 处理程序。根据负载测试在哪个代理上运行,请求本身是针对开发/暂存环境发出的,然后传递给“处理”请求的下游服务,INSERT
并对几个数据库执行语句。我想构建并包含一个简单的插件,该插件实现并为事件处理程序ILoadTestPlugin
提供它自己的一组指令。LoadTestCompleted
此插件当前包含在一个单独的类库项目中,该项目包含在包含负载测试本身的同一解决方案中。
在我开始描述这个问题之前,我想指出我目前正在本地运行负载测试,该测试是针对我在 IIS 中设置的同一个处理程序。
当事件触发时我遇到了一个问题,我的方法尝试建立到目标数据库上下文的实体连接(当前使用 Entity Framework 4)。插件代码似乎无法找到负载测试项目中包含的 app.config。异常消息/堆栈跟踪指出连接字符串无效,但我渴望问题是它找不到它。最重要的是,我们的代码库中的许多地方都使用了相同的连接字符串。
我可以排除我的连接字符串无效的可能性,因为如果我创建一个使用相同配置文件执行相同代码的简单单元测试方法,它就可以正常工作。这是给定的,因为负载测试代理包含在与项目不同的目录中,因此定位配置文件没有问题。
我还尝试将复制到启动项目的输出目录的配置文件作为部署项添加到我的 .testsettings 文件中。没有布埃诺。我还在插件项目中创建了一个应用程序配置文件,它是我试图用来查看是否有效的文件的精确副本。还是没有bueno。
有没有人遇到过这个问题?如果您尝试使用<connectionString>
配置文件中的部分,如何让负载测试插件找到/使用它们?
我打算尝试使用反射和良好的 ole'ConfigurationManager
来尝试调用程序集以查找路径(最终是 ProjectName.dll.config 文件),但想向 StackOverflow 上的专家询问一下前进之前的建议。
另外,如果这不是那么直接的 EF 代码(或者如果它超出了点:),我会提供代码var dbContext = new dbContext( myConnectionString );
示例
非常感谢任何帮助/反馈。