使用Bot Framework进行负载测试

时间:2017-09-04 18:27:50

标签: botframework

我已经通过获取身份验证令牌的过程进行了调试,并且我能够将活动从控制台应用程序传递到自定义连接器web api。从那里我需要将活动传递给我的机器人,但是,这是我遇到问题的地方。

当我将有效负载发送到我的bot服务端点(https://localhost:3979/api/messages)时,我收到500内部服务错误。使用Postman,我能够调试到bot服务,并看到我收到错误

Exception thrown: 'Microsoft.Rest.SerializationException' in mscorlib.dll

在堆栈跟踪之后,我看到“解析时出现意外的字符......”。这发生在以下呼叫期间。

await dialogContext.PostAsync("Testing 123");

如果我使用从模拟器发送的有效负载,它可以正常工作。但是,如果我将ChannelId更改为“test”并将ServiceUrl更改为我的自定义连接器服务,则会收到上述错误。

我正在本地调试所有服务以正确设置管道。

自定义连接器服务网址正在使用SSL(https)。

我错过了哪一块拼图?

2 个答案:

答案 0 :(得分:1)

看看https://github.com/thirumathi/bottestvsts,您将在那里找到进行负载测试的方法。

特别是,在https://github.com/thirumathi/bottestvsts/tree/master/BotCustomConnectorSvc,您会找到连接器和状态的自定义实现。

答案 1 :(得分:0)

我遇到的问题是其中一个回复。当我返回一个id值时,它已被编码,但当它通过apicontroller时,它再次被编码,因此,bot框架无法正确解析它。

我没有返回一个json字符串(在示例中硬编码),而是从bot框架(https://docs.botframework.com/en-us/csharp/builder/sdkreference/de/df8/class_microsoft_1_1_bot_1_1_connector_1_1_resource_response.html)创建了一个ResourceResponse对象,该对象只包含一个ID字段,但它是预期的。这解决了我从自定义连接器到bot框架到自定义连接器的通信问题。