接口自动化测试--持续集成

前面章节我们介绍了基于Postman工具以及Python脚本实现自动化测试,但并没有与代码的提交进行关联,如果开发人员提交的代码存在导致接口错误的问题,那我们的自动化测试case无法第一时间反馈给开发人员,因此我们需要将代码提交与自动化测试相关联,在提交代码并将代码部署到服务器之后立即触发自动化测试,以便第一时间反馈接口是否存在导致用例失败的bug。

1. 提交代码触发构建

提交代码触发自动化测试的整体流程图如下图所示:

github流程

从上图可以看到,整个流程包括如下7个主要步骤:

❶提交代码:开发完成接口服务代码的开发后,将代码提交到GitHub服务器;

❷定时轮询:Jenkins Job1定时轮询检测GitHub代码库对应分支代码是否有新的提交,如有,则执行步骤3,如没有,继续执行轮询任务;

❸拉取代码:Jenkins服务器从GitHub仓库对应分支拉取代码到本地;

❹服务部署:Jenkins将拉取的代码部署到应用服务器中,并启动服务,启动服务过程中,如该服务已启动,则需先停止服务,然后再启动;

❺触发测试:Jenkins Job1完成服务启动后触发Job2执行,Job2的主要作用就是执行接口自动化测试程序;

❻接口测试执行:执行接口自动化测试任务,访问接口,并通过断言判断接口是否通过测试记录测试结果;

❼测试结果:Jenkins收集自动化测试报告,如执行失败则发送给相关人员。

上面流程图中,步骤2定时轮询检测代码库是否有代码变更的方式也可以通过GitHub提交代码后调用Jenkins Webhook的方式实现,这种方式的实时性比定时轮询要高,比如定时轮询的时间间隔设置为5min,那么Jenkins检测到代码有变化的最长时间就可能是5min,而调用Webhook的时延则几乎可以忽略,但调用Webhook的方式需要Jenkins所在机器配置并开放公网ip,以便GitHub可以访问到,读者可以根据自己的实际场景选择合适的方式。

通过上面流程图也可以看到,本文涉及到的代码共有两部分,分别是:

另外,本文实验条件下,除了Github服务器是第三方服务器外,上图中“DEV”、“Jenkins”、“App Server”、“TEST”、“AutoTest”、“DB Server”这6台逻辑上的机器都在作者的同一台PC电脑上,读者如搭建上述环境,也请注意这一点。

2. 提交代码到GitHub仓库

1)创建GitHub仓库

首先我们需要注册一个GitHub账号,GitHub网址为:https://github.com/, 打开页面如下图所示:

github

完成注册后,登录GitHub,点击左侧【New】按钮,或者右上角[+]菜单中的【New repository】,如下图所示:
新建项目

打开的页面中,Repository name输入框中输入代码仓库名称,如:ApiTestDemo,然后点击【Create repository】按钮
项目名称

完成代码仓库创建后,会自动进入仓库详情页面,如下图所示:
项目页面

上图红框中的URL就是仓库的地址,后面我们从本地仓库上传代码,通过Jenkins下载代码都需要用到这个地址。

2)提交代码到GitHub

❶提交代码

在Git Bush上输入命令

  • 创建仓库目录
mkdir ApiTestDemo
  • 进入仓库目录
cd ApiTestDemo
  • 初始化git仓库
git init
  • 添加到[暂存区]

创建名称为4.2的文件夹,并将4.2.py文件复制到4.2文件夹,完成后执行下述命令,将文件添加到「暂存区」,“add .”表示添加全部文件,也可以指定上传的文件名称,比如git add 4.2.py

git add 4.2.py

Tips:

[暂存区]:英文叫 stage 或 index,一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)

  • 提交[本地仓库]

将上一步 add 过的内容「正式提交」到本地仓库(.git就是本地仓库),-m后双引号内填写备注信息

git commit -m "add 4.2.py"
  • 将本地仓库关联到远程仓库

上面的操作都是在本地仓库中的操作,接下来我们将代码上传到GitHub,复制上述GitHub仓库的URL地址,执行下述命令,将本地仓库关联到远程仓库

git remote add origin https://github.com/8784285/ApiTestDemo.git
  • 推送到远程仓库

最后执行下述命令,将本地代码分支的更新,推送到GitHub仓库

git push -u origin master

此时会提示输入用户名和密码,正确输入后,代码即可推送到GitHub仓库

Username for 'https://github.com': 8784285
Password for 'https://8784285@github.com':

完成后,刷新GitHub ApiTestDemo仓库的详情页,即可看到我们提交的代码,如下图所示:

git仓库详情

❷免密登录

上面步骤中,我们向GitHub提交代码,需要输入用户名和密码信息,每次提交都输入,必然是比较繁琐的,因此我们来配置免密码登录

命令行输入,生成密钥

ssh-keygen -t rsa

执行命令后需要进行3次或4次确认:

  • 确认秘钥的保存路径(如果不需要改路径则直接回车);
  • 如果上一步置顶的保存路径下已经有秘钥文件,则需要确认是否覆盖(如果之前的秘钥不再需要则直接回车覆盖,如需要则手动拷贝到其他目录后再覆盖);
  • 创建密码(如果不需要密码则直接回车);
  • 确认密码;

以下是3次确认执行过程如下:

C:\Users\MeetYou>ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\MeetYou/.ssh/id_rsa):
Created directory 'C:\Users\MeetYou/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\MeetYou/.ssh/id_rsa.
Your public key has been saved in C:\Users\MeetYou/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:v3ysbUg9xrLJarfLJxWSCdmsRU1gF02Muamm0XhvYp4 meetyou@DESKTOP-225I7NI
The key's randomart image is:
+---[RSA 2048]----+
|         =+++B.  |
|        o.+.+ o  |
|         + o o   |
|        . + +    |
|        So = .   |
|        o.B *    |
|         B.X .   |
|        ooX+B    |
|       ..=E@.    |
+----[SHA256]-----+

目录C:\Users\MeetYou.ssh 下会生成2个名为id_rsa和id_rsa.pub的文件。

打开GitHub,进入配置页,如下图所示:
github setting

选择SSH and GPG keys项,然后

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

<p> 本专刊共五章 21 篇正文及 5 个对应的 GitHub 项目,主要介绍了接口测试基础知识及测试用例设计方法,认证鉴权、加密验签,自动化测试,安全性测试,性能测试等内容,每一章节都有代码实例来剖析其原理,并提供了一个完整电商系统的代码,可以直接实操演练,让你知其然知其所以然,轻松搞定接口测试。加入专刊,你就加入了一大群志同道合的优质测试人圈子,同时还有和作者及作者的朋友们互动交流的机会。 本专刊购买后即可解锁所有章节,故不可以退换哦~ </p> <p> <br /> </p>

全部评论
从目录看,整个项目的测试方面很全。就是从接口手工,如何用postman,以及自动化,安全,性能,还有持续集成等。看得出作者很用心的写了这篇专栏。很赞! 希望自己能学完,至少掌握2/3,并能对接口测试能有个全方面的初步认知和掌握🤗
点赞
送花
回复
分享
发布于 2023-06-21 18:12 上海

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务