使用webhook在github代码更新时构建目标工程

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


确定目标

大的背景是作为一个软件行业的测试工作人员。搭建使用实际项目可用好用的接口自动化测试框架是最终目标。

大的目标是由很多的小目标组成的。我在这之前整体搭建了一个接口自动化测试框架,实现了大部分单接口用例和小部分场景化用例的自动化。

在这个基础上想要实现一个功能:那就是在测试对象代码被更新时自动触发执行自动化测试代码工程。

这样可以最大程度地实现接口自动化地实时覆盖。代码目前是存放在github和gitee上面的,由此我们开始思考如何实现。

实现

webhook的实现其实在网上是有比较详细的介绍的。我本身也是通过豆包搜索一步一步进行实现的。

今天写这个的主要原因是想加深一下自身对于实现过程的记忆,另外对webhook的实现原理和实际使用场景做更深的理解。

webhook本身是采用http协议的,源应用在某个动作触发时向目标地址发送一个hook请求。目标应用再通过请求的内容来进行实际工程的构建。

首先你需要一个源应用,这里一般是指存放在远程仓库的代码。再或者可以自己专门实现一个源应用程序。

另外要有个目标地址(应用)。这里实际例子是jenkins的webhook地址,这个地址必须是可以被公网访问的地址。我会在文章最后描述一下如何将本地的接口暴露在公网。

首先需要对源应用进行创建,再是在源应用上创建webhook。

具体如下图

在github平台上进行webhook的创建,根据路径点击add webhook后填入预期参数。

着重需要对参数进行说明

Payload URL:需要填写目标应用的公网地址。 格式为公网url+自定义标识(举例:https://b688-124-90-93-60.ngrok-free.app/github-webhook/)

Content type:一般使用application/json

Secret:密码(可设可不设)

其他按实际项目需求进行设置。

创建之后可以ping一下,返回200代表网络是通的

而后需要在cicd工具当中配置构建对应的项目,例如jenkins

创建项目后配置

重点是勾选。

上述两步完成之后,我们对源应用进行代码的修改更新push,再观察jenkins构建的项目状态。

我们可以看到项目被触发构建了。我们再观察一下github中webhook的记录。

一次根据远程仓库代码更新触发执行目标项目的能力就实现了。

这里需要提一嘴的是如何将本地的服务暴露在公网之上。这里采用了ngrok工具。

首先进入ngrok官网https://ngrok.com/,下载对应系统的app压缩包。我用的是mac所以下载mac版的。

下载好之后,将压缩包在终端解压。再添加ngrok账号所对应的authtoken。最后将本地网址即端口映射到公网上。最后在ngrok中的Endpoints查看公网ip。

总结

实现了同步代码更新自动化执行构建项目的功能,实现了将本地端口暴露在公网的能力。

在实际的项目当中实际上需要在一个大的源项目当中指定一部分的代码变更对应项目执行,后续有机会再探索。

另外将本地端口暴露在公网是调试时所作的事情,实际项目当中会有云服务器这些工具来代替。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值