好的软件与其他软件的区别不在于功能,而在于所声明函数的质量,这已不是什么秘密。 毕竟,如果根本无法运行,没有人需要功能丰富的软件。 但是,您如何及时告知开发人员项目有问题呢?
今天,我们将讨论公司内部各部门之间的沟通问题,同时以测试IT的示例为例,我们将看看帮助我们理解Zen的原因:公正,一心一意和算法的灵魂-Bot Framework上的机器人。 欢迎来到猫!

长期以来人们一直认为,战争中的主要工具是交流。 没有沟通,就不可能协调部队,从野外寻找新闻,提供支持并跟随敌人的行动。 如果不是多个部门对产品的局部战争,那又是什么发展呢?
而且如果在古代他们使用信使,信使和后来的电话来传播新闻,那么在2020年的门槛上使用这样的技术将很奇怪,尤其是当您从事产品开发的军队可以分布在一个办公室之外的地方时。 这是我们的质量检查工程师,并提出了类似的问题。
当然,您可以在实时聊天中编写有关失败测试的详细信息。 但是,这将需要您不想在相同类型的通知上花费的时间。 您可以将命令添加到“
测试” IT门户,并强制他们检查自动
测试的状态。 这也将部分解决问题,但是不断出现在门户上的需求将极大地分散开发团队的注意力。 我们需要更简单的方法,而不必浪费时间再次发送通知。
遵循这种逻辑,我们开始讨论webhooks。 他们将自动将通知和重要日志从系统发送到连接到Internet的任何铁。
因此,我们整理了沟通渠道。 现在该考虑网络钩子应该在哪里发送通知了。 理想情况下,这应该是一个平台,将几个即时通讯程序和电子邮件结合在一起,以供经典爱好者使用。 而且,正如您可能从文章标题中猜测的那样,该平台属于Bot Framework。
这种组合完全满足紧急通知的要求,将在不干扰测试用例和平台的情况下扩展Bot的功能。 机器人本身将成为我们的开发助手,他将不懈地阅读工作中的聊天信息,并把有关TMS Test IT的任何感兴趣事件通知我们。
在今天的文章中,我们将考虑一个使用Telegram机器人从Test IT平台向开发和测试团队发送通知的示例。
创建一个项目和一个机器人
转到门户并创建一个新项目:

该项目包括测试用例,自动测试,清单,webhooks等。
接下来,创建一个测试计划。 使其具有与项目名称相同的简单名称:

此外,您可以添加新的测试用例,但是我们将直接进行智能助手的创建。 不要关闭门户,我们将返回到该门户以设置Webhook。
开发将使用Azure在.Net Framework上进行(当然,如果没有它)。 实际上,我们将从
Azure开始。
转到门户并查找Web App Bot:

单击“创建”,填写必填字段并展开。 作为本文的一部分,我们将首先部署Echo Bot模板,将来我们将在此模板上构建
僵尸程序成功部署后,就该与该僵尸程序连接到其通信渠道了。 开发人员可以选择大量的Messenger和通信选项,但Telegram足以满足我们的目的。
为此,请向
@BotFather机器人编写几个好的命令,然后创建一个新的机器人。 幸运的是,他与我们进行了非常友好的沟通,帮助他建立了自己的同伴。 Bot Father是在Telegram创建的,用于控制其他机器人。 是的,难怪他的名字是机器人之父!
在注册结束时,Bot父亲必须给我们孩子的唯一钥匙。 我们很高兴复制它,感谢这个陌生家庭的父亲,并返回到Azure门户。
现在,我们需要下载机器人的源代码,以便我们可以在IDE中直接使用它:

立即我们可以得到一个用于本地调试的仿真器。 如果您的机器人的逻辑要比“ Hello world”的输出多一点,那么最好使用工具来调试和测试您的新团队成员。
直接在门户网站上,我们只需要打开新的bot,转到“通道”选项卡,添加一个Telegram通道,并为其提供密钥,该密钥由bot的父亲留下即可。 另外,为了防止bot长时间不活动而崩溃,建议切换到应用程序服务(该名称与门户上我们bot的名称相似)->配置->常规参数,然后在``始终打开''列中选择状态为``启用''。 否则,您的机器人可能会入睡,并且最终用户需要花费宝贵的时间来启动它。

另外,由于我们仍在Azure门户上,因此将为此机器人部署一个小型数据库。 用于存储组索引及其秘密密钥的列表。 您可以
在此处阅读有关数据库部署的更多信息。
因此,如果在Telegram中访问我们的机器人时,他返回了我们的消息,则意味着我们做对了所有事情,并且Azure的选项卡可以推迟到更好的时机。 现在,您可以开始研究助手的逻辑了。
我们指导机器人的大脑

对于那些具有ASP.NET Core经验的人来说,接下来不会有什么新东西了。 其余的将留下简短的手册,说明下一步的工作:
- 指导应用程序使用实体框架并绑定数据库 该机器人必须能够存储ChatID通信,忽略聊天的状态以及数据库中传入实体的“ secretKeyBot”。 这样,不仅可以在该项目以及整个公司的框架内使用bot,还可以将bot自由地添加到每个人的组中;
- 添加数据模型和API控制器。 在我们的应用程序中,必须有一些外部入口点,您可以通过该外部入口点访问漫游器并传输请求主体。 数据模型是请求主体的表示形式,控制器必须通过外部调用来计算;
- 编写难题和服务团队。 如果kruds一切都清楚了,那么命令服务就是我们处理聊天消息的业务逻辑。 最初,我们希望能够在任何特定的聊天中淹没机器人的通知。 可以直接使用chat命令来执行此操作,机器人应处理该命令并仅记住此聊天。
- 使用模拟器在本地环境中测试机器人。 尤其是经验丰富的人可以将机器人直接上载到Azure,并通过在Telegram中进行聊天来观察其行为,但是在这种情况下,机器人不会向您返回错误的详细说明。 是的,并且无法放置断点(常用的调试工具)。 顺便说一下,Bot Framework的一个小功能是它真的不喜欢返回错误的详细描述。 因此,我们会谨慎地开发并更加频繁地投入精力!
- 发布到Azure。 在项目的文件夹中,您可以找到一个名称不复杂的文件夹“ PostDeployScripts”。 它包含一个对我们来说很重要的文件,扩展名为.PublishSettings。 连接到Azure上的机器人存储的数据就在那里。 对于使用Visual Studio的用户来说,此文件是发布项目的关键:在发布时将其导入,IDE将从其中提取所有必要的数据。
添加webhook
实际上,该机器人已创建。 现在是时候从TestIT门户删除webhook了。 我们很高兴没有关闭浏览器中的选项卡,然后转到那里:

我们进入项目设置,在“ Webhooks”选项卡中添加一个新的:

现在,让我们尝试更改测试计划的状态,并查看机器人的响应方式。

实际上,这是我们最后的一个创建助手机器人的小例子。 我们的机器人可以
在GitHub上查看。
从现在开始,开发人员和测试人员团队可以安全地从事产品开发,而我们的新朋友将不知疲倦地等待来自测试领域的新闻并迅速分享。
重要的是要了解,机器人的功能几乎是无限的:它能够处理来自外部的任何请求。 这意味着您可以学到很多东西:在闲暇时间过滤聊天消息,团队建设通知,迷你游戏。 如果您想发挥一点想象力,可以教他如何订购比萨饼,制作工作日历,识别文档,甚至将收到的电子邮件转发给即时通讯员。