首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在空手道API中,我不像预期的那样工作

在空手道API中,我不像预期的那样工作
EN

Stack Overflow用户
提问于 2020-04-24 17:01:23
回答 1查看 2.1K关注 0票数 1

我正在探索空手道API双(模拟)的集成测试。对于下面的场景,我没有得到预期的模拟响应。你的帮助将不胜感激。

My安装程序: 1.在端口8001上使用pathMatches规则的空手道模拟服务器:http://localhost:8001 (工作,对"/cat“和一些测试调用进行验证) 2.我自己的应用程序是从端口8080上的对接器上升级的。从码头也暴露了8001端口。

模拟案例: 1.我的应用程序REST调用公开给所有用户http://localhost:8080/service/v1/findUser。这个公开的API,底层调用其他REST调用http://dev-STG/userservice/v1/findUser,它实际上提供了JSON响应。因此,我想模拟底层API调用,并相应地验证我的API行为。

步骤尝试过: 1。现在,在我的应用程序配置中,m替换了对空手道模拟服务器(http://localhost:8001/userservice/v1/findUser)的实际底层API调用。然后构建并提升了我的应用程序对接程序。

在空手道中,我定义了测试,例如调用我的应用程序API "http://localhost:8080/service/v1/findUser“的"testIntgrtn.feature”,并使用路径匹配call(http://localhost:8001/userservice/v1/findUser).

  • Now,设置模拟服务器,执行"testIntgrtn.feature“空手道而不是对"testIntgrtn.feature”文件中的底层call(http://localhost:8001/userservice/v1/findUser).
  1. Now,进行模拟,我将应用程序URL更改为底层REST。

我不明白为什么底层API调用在这里不被嘲笑?我错过了什么吗?此外,在空手道中,我们可以监视所有的休息呼叫(如柏树嘲弄)。

谢谢你这个很棒的框架。这对于编写自动化案例来说是很直观的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-24 17:26:51

空手道不能自动拦截呼叫。

推荐的方法是,当您在localhost:8080上启动应用程序时,您可以更改配置,这样它就不会调用http://dev-stg/userservice/v1/findUser,而是调用类似于http://localhost:8001/v1/findUser的东西。这是大多数团队所做的,而且很容易,因为无论如何,您应该将外部URL定义为application.properties (或等效的)作为最佳实践。

在Spring中很容易遍历一个应用程序属性--例如,您可以通过命令行:https://stackoverflow.com/a/37053004/143475来完成这个任务。

如果需要,可以动态地为模拟提供一个端口。因此,单元测试可以首先启动模拟,获取端口,然后启动服务器。您可以在空手道文档中找到详细信息。

所有这些都表明,如果您能够在localhost:8080启动应用程序之前更改(系统) HTTP代理,那么您可以在不修改配置的情况下做到这一点。(但这是一个棘手的问题,因此我建议采用上面解释的方法。)因此,在这种情况下,空手道实际上可以“拦截”localhost:8080的应用程序发出的传出HTTP调用。

请参见表中的第二行(5a):https://github.com/intuit/karate/tree/master/karate-netty#consumer-provider-example

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61413581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档