Pipeline 是 Jenkins2.X 的最核心的特性,帮助 Jenkins 实现从 CI 到 CD 与 DevOps 的转变。
Pipeline 是一组插件,让 Jenkins 可以实现持续交付管道的落地和实施。持续交付管道(CD Pipeline)是将软件从版本控制阶段到交付给用户或客户的完整过程的自动化表现。软件的每一次更改(提交到源代码管理系统)都要经过一个复杂的过程才能被发布。
TCP 协议是在传输层中,一种面向连接的、可靠的、基于字节流的传输层通信协议。
环境准备
对接口测试工具进行分类,可以如下几类:
- 网络嗅探工具:tcpdump,wireshark
-
- 代理工具:fiddler,charles,anyproxyburpsuite,mitmproxy
-
- 分析工具:curl,postman,chrome Devtool
-
-
抓包分析TCP协议
tcpdump是一款将网络中传送的数据包的“头”完全截获下来提供分析的工具。它支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not 等逻辑语句去掉无用的信息。
让 tcpdump 时刻监听 443 端口,如果有异样就输入到 log 文件中
sudo tcpdump port 443 -v -w /tmp/tcp.log
利用这条命令,会把得到的报告放到目录 /tmp/tcp.log 中。
wireshark 也是一款网络嗅探工具,它除了拥有 tcpdump 功能,还有更多扩展功能,比如分析工具,但是在接口测试中,抓包过程往往都是在服务器进行,服务器一般不提供 UI 界面,所以 wireshark 无法在服务器工作,只能利用 tcpdump 抓包生成 log,然后将 log 给 wireshark 导入使用,在有 UI 界面的客户端上进行分析。
抓取一个 http 的 get 请求:
1.在百度上搜 mp3"http://www.baidu.com/s?wd=mp3"
2.用 tcpdump 截获这个 get 请求,并生成 log
3.用 wireshark 打开 tcpdump 生成的 log
使用 wireshark 查看 log:
log 的前几段信息是三次握手,原因是信道是不可靠的,在发送数据前,就必须确保信道稳定,而三次握手就像是下面这些操作:
- 第一次握手:建立连接时,客户端发送 syn 包(syn=j)到服务器,并进入 SYN_SENT 状态,等待服务器确认。
-
- 第二次握手:服务器收到 syn 包,必须确认客户的 SYN(ack=j+1),同时自己也发送一个 SYN 包(seq=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态;
-
- 第三次握手:客户端收到服务器的 SYN+ACK 包,向服务器发送确认包 ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED(TCP 连接成功)状态,完成三次握手。
- 经过三次握手,就可以进一步交流,就像下面这样:
结束交流时,也需要进行挥手:四次挥手:
- 第一次挥手:客户端向服务器端发送一个 FIN,请求关闭数据传输。
-
- 第二次挥手:服务器接收到客户端的 FIN,向客户端发送一个 ACK,其中 ack 的值等于 FIN+SEQ
-
- 第三次挥手:服务器向客户端发送一个 FIN,告诉客户端应用程序关闭。
-
- 第四次挥手:客户端收到服务器端的 FIN,回复一个 ACK 给服务器端。其中 ack 的值等于 FIN+SEQ
⬇️ 点击“阅读原文”,提升测试核心竞争力!
原文链接
获取更多相关资料+v~ ceshiren001
获取更多技术文章分享
Pipeline 提供了一组可扩展的工具,通过 Pipeline Domain Specific Language(DSL)syntax 可以达到 Pipeline as Code( Jenkinsfile 存储在项目的源代码库)的目的。
Pipeline中的基础概念
阶段,一个 Pipeline 可以划分成若干个 Stage,每个 Stage 代表一组操作,例如:“Build”,“Test”,“Deploy”。Stage 是一个逻辑分组的概念,可以跨多个 Node
节点,一个 Node 就是一个 Jenkins 节点,或者是 Master,或者是 Agent,是执行 Step 的具体运行环境。
步骤,Steps 是最基本的操作单元,小到创建一个目录,大到构建一个 Docker 镜像。
Pipeline创建与配置
新建一个 Jenkins 任务,在任务类型中选择 Pipeline。将 Pipleline 的任务代码填入 Pipeline Script 对话框。
运行 Pipeline 任务。
通过代码库运行Pipeline任务
除了可以直接在 Jenkins UI 中添加 Pipeline 代码运行任务,也可以将代码保存到代码库中,然后通过指定代码位置的方式来运行 Pipeline 任务。操作步骤如下:
1.新建一个 Jenkins 任务,在任务类型中选择 Pipeline。
2.在 Jenkins Pipeline 任务中选择 Pipeline script from SCM,然后添加 git 源码地址, 在 Script Path 中填写需要运行的 Jenkinsfile 文件所在的地址。
3.通过代码库运行 Pipeline 任务。
4.
保存对Pipeline所做配置,然后运行任务。
Pipeline,简而言之,就是一套运行于 Jenkins 上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。
⬇️ 点击“阅读原文”,提升测试核心竞争力!
原文链接
获取更多相关资料+v~ ceshiren001
获取更多技术文章分享