自托管 web api 并从单元测试项目中访问它

Posted

技术标签:

【中文标题】自托管 web api 并从单元测试项目中访问它【英文标题】:Selfhost webapi and access it from the unit test project 【发布时间】:2017-12-18 14:56:56 【问题描述】:

我们有一个带有 4 个端点的 webapi 项目,并且我们有很多用 JMeter 编写的验收测试。问题是现在 JMeter 文件已经超过 20 MB,当我们在合并分支时这个文件发生冲突时,很难正确处理它。

所以,我的问题是:有没有一种解决方案可以在我运行单元测试时以某种方式自托管 api 并直接调用我的 api 并放弃 JMeter 替代方案?

【问题讨论】:

文件拆分成几个小文件有用吗? 不,不是。即使文件有 4mb,仍然有很多信息 【参考方案1】:
    如果您只使用 JMeter 进行功能测试,您可以考虑切换到基于代码的库来发出 API 请求,目前最流行/最先进的似乎是 RestAssured。 第 1 点将需要从头开始重新实施测试,如果您没有时间/预算,您可以考虑重构测试以删除重复项或使用 Test Fragments 和 @ 将庞大的 .jmx 脚本拆分为更小的部分987654323@。查看How to Manage Large JMeter Scripts With JMeter Test Fragments 了解更多信息。

【讨论】:

如果你看问题标签,你会看到asp.net-web-api2,所以这意味着我的代码是c#。其次,RestAssured 可以自行托管我的 api 项目,以便我可以从单元测试项目中调用它吗? 在这种情况下,JMeter 对您的项目来说是“外星人”,因为它是基于 Java 的,我对这个选择感到有点惊讶。我强烈怀疑你是否有能力自己找到 C# 实现,所以你去吧:RestAssured.Net 但是为了使用 RestAssured.net,首先我需要部署我的 api,对吗?后来打电话给我的api?如果是这种情况,那么这只是 http 客户端上的流畅界面...

以上是关于自托管 web api 并从单元测试项目中访问它的主要内容,如果未能解决你的问题,请参考以下文章

使用 HttpServer 或 HttpSelfHostServer 对 Web API 进行单元测试

使用自托管 Azure Service Fabric 调用 Web API 时出错

转换 Web API 以使用自托管

React Native:在开玩笑的单元测试中更新上下文 api 值

OWIN 托管的 web api:使用 windows 身份验证并允许匿名访问

使用 web api 自托管获取客户端的 IP 地址