AI-Jenkins自动化测试流程实践

208 篇文章 0 订阅
144 篇文章 0 订阅

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客文章浏览阅读3k次,点赞86次,收藏13次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……_软件测试刷题小程序​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502icon-default.png?t=N7T8https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502

为什么做这个实践?

  1. 本次内容主要是在GPT的帮助下学习整个自动化用例编写到Jenkins部署运行的一整个流程,为了方便以后得进一步学习

  2. 有哪些意义?

    1. 想记录一下对测试的探索,会包括但不限于自动化、安全、稳定性等相关内容。

环境

  1. 设备:Mac本
  2. 软件:iTerm2、GPT3.5/4.0、Chrome浏览器、Pycharm

对话GPT

用GPT编写一段自动化测试的代码。

貌似一下就略过了很多很多问题,比如接口接入的框架时候应该怎么写,这个后面也会慢慢探索。

  • Prompt:

    • 我是一名测试工程师,现在想了解关于自动化测试的一些内容,我希望你能给我以下帮助:1、现在网络上存在着很多免费的API可以用来作为练习或者测试,我希望你能够借用这些接口使用pytest框架来编写一个完整的接口自动化测试程序,最少涉及5个接口不同形式请求构造和返回值的验证。并指导我如何将相应代码写入对应的pycharm编辑器中。保证能够运转成功。2、第二步,当我将这个程序运行成功后,我希望能把这个程序放在jenkens上去定时运行,并且定时给我发送运行结果,中间涉及到的操作步骤希望你能够给予我指导。
  • 回复

    • 第一步,编写一个自动化测试程序

      • 选择免费的API

      • 安装pytest和requests

        • pip install pytest requests
      • 编写测试代码 我们将创建一个测试文件,比如test_api.py,包含对JSONPlaceholder中不同接口的测试。这里涉及5个不同形式的请求:

        • GET请求 - 获取帖子列表

        • GET请求 - 获取单个帖子

        • POST请求 - 创建一个帖子

        • PUT请求 - 更新帖子

        • DELETE请求 - 删除帖子

        • 代码:

import requests
# 定义基础URL
BASE_URL = "https://jsonplaceholder.typicode.com"
def test_get_posts():
    """测试获取帖子列表"""
    response = requests.get(f"{BASE_URL}/posts")
    assert response.status_code == 200
    assert len(response.json()) > 0
def test_get_post():
    """测试获取单个帖子"""
    response = requests.get(f"{BASE_URL}/posts/1")
    assert response.status_code == 200
    assert response.json()['id'] == 1
def test_create_post():
    """测试创建帖子"""
    data = {
        "title": 'foo',
        "body": 'bar',
        "userId": 1,
    }
    response = requests.post(f"{BASE_URL}/posts", data=data)
    assert response.status_code == 201
    assert response.json()['title'] == 'foo'
def test_update_post():
    """测试更新帖子"""
    data = {
        "id": 1,
        "title": 'updated title',
        "body": 'updated body',
        "userId": 1,
    }
    response = requests.put(f"{BASE_URL}/posts/1", data=data)
    assert response.status_code == 200
    assert response.json()['title'] == 'updated title'
def test_delete_post():
    """测试删除帖子"""
    response = requests.delete(f"{BASE_URL}/posts/1")
    assert response.status_code == 200
if __name__ == "__main__":
    pytest.main()
      • 将代码写入Pycharm

        • 打开PyCharm,创建一个新的Python项目或在现有项目中打开一个新文件。
        • 将上述代码复制粘贴到一个新的Python文件中,例如test_api.py。
        • 保存文件,并确保PyCharm配置了正确的Python解释器,且已安装pytest和requests库。
      • 运行测试

        • 在PyCharm的终端中,导航到包含test_api.py文件的目录,运行以下命令执行测试 pytest test_api.py
    • 第二步,将程序部署到Jenkins上并且设置好定时运行

      • 安装和配置Jenkins

        • 在你的服务器上安装Jenkins。安装指南可在Jenkins官网找到。
        • 安装完成后,打开Jenkins,并按照提示完成初始设置。
      • 创建新任务

        • 登录Jenkins,点击左侧菜单的“新建任务”。
        • 输入任务名称,选择“构建一个自由风格的软件项目”,点击“OK”。
      • 配置任务

        • 在“源码管理”部分,选择适当的选项以获取你的测试脚本。如果你的代码在GitHub上,可以选择“Git”,并提供仓库URL。
        • 在“构建触发器”部分,选择“定时构建”,并根据需求配置定时规则,例如每天运行一次可以写为H 0 * * *。
        • 在“构建”部分,点击“添加构建步骤”,选择“执行Shell”,并输入运行测试的命令,如pytest test_api.py。
        • 保存配置。
      • 设置邮件通知

        • 在Jenkins中安装“邮件扩展插件”(如果尚未安装)。
        • 配置Jenkins系统设置中的邮件服务器。
        • 在任务配置中的“构建后操作”部分,添加“发送邮件通知”,配置接收邮件的地址,以及何时发送邮件(例如,每次构建后或仅当构建失败时)。
      • 运行和测试

        • 手动触发任务运行一次,检查一切是否配置正确。
        • 等待定时任务自动运行,或再次手动触发以测试邮件通知。

过程说明及问题展示

  • 1、自动化程序应该都不是问题,其实这样的用例代码也比较简单,就不再过多的赘述,按照GPT的指示操作就好了,先把文件创建好,然后上传到对应的代码仓库中,做好下一步的准备。

  • 2、要注意我们现在是没有虚拟机的,也就是Jenkins 也要安装在我们的Mac系统中,我是通过Homebrew安装的,没有的话可以找找教程安装一下。

    • 安装Jenkins命令 brew install jenkins-lts 这个lts 意思是长期支持版本
    • 安装完成后启动Jenkins brew services start jenkins-lts 此时Jenkins应该已经在运行了。默认情况下,Jenkins运行在8080端口。你可以通过访问http://localhost:8080在浏览器中打开Jenkins。
    • 直接从Jenkins网站上安装的方式不过多赘述
  • 3、初始化配置

    • 不管如何安装,在第一次访问页面时候都会要求输入管理员密码,网页上有提示如何查看密码,按照指示完成即可,然后按照推荐安装插件,创建管理员账户。
    • 一切都完成,就可以在我们的Mac上开始集成自动化代码的测试工作了。
  • 4、按照上面教程中添加源代码,发现总是存在链接失败的情况(致命:无法从远程存储库读取。)返回状态码128;

    • 这个时候要注意,你的电脑能够上传代码到git仓库,说明你的公钥对已经生成了并且已经填入git仓库了。

    • 我犯得错误是把公钥当成私钥填入Jenkins使用了,所以无法正常的联通数据库。

    • 解决方法;

      • 1、在设备的命令行中查看私钥信息

      • 2、复制私钥,打开Jenkins(指的是访问端口的那个),依次进入Dahboard-系统管理-凭据管理,在这里添加一下我们的私钥信息

      •        PS:可能会让你输入密码,这个密码就是你查看公钥私钥时候让你输入的那个密码,没有的话设置一个最好。大概是这个路径:

      • 3、再次尝试连接GIT仓库时候发现成功了(哦去,前提使我们下面选择好对应的私钥username)

  • 5、这时候开始构建,发现是构建成功的了,但是日志会告诉你,邮件并没有发送。看一下邮件配置

    • 路径如下:Dashboard-系统管理-系统配置-拉到最下面-邮件通知

    • 有几个选项需要填写,因为我是由163邮箱发送信息到我的163邮箱(怪怪的)

      • SMTP的服务器:smpt.163.com

      • 用户默认邮件后缀好像没啥用,不填也行。

      • 高级设置中有几个内容要正确:

        • 用户名:你的发件邮箱名。
        • 密码:你的邮件授权码(没有的话去对应的网页版申请一下,申请完可以保存起来,可长期使用,你手机上用自带那个邮箱软件时候也可以用到)
        • 端口:一般是465、587,前者就OK
        • 别的不管
      • 点击通过发送测试邮件测试配置,填写你的发件邮箱,Test Configuration。即OK

  • 6、完成,这个时候当你的自动化测试执行失败时候就会有对应的邮件通知了。

一些碎碎念

  • GPT的使用过程中,让我觉得生产力的更新迭代是如此的快,作为一个测试同学感觉被替代的感觉更加强烈了有木有?

  • 也可能正是因为如此吧,还是要不断地使用它做一些更新的尝试,本次的一个实践其实还存在着很多很多的不足之处,比如

    • 1、我们的自动化测试用例不可能只是针对单独的某一个接口进行的,更可能的是针对不同接口进行处理。复杂的程度上也会远远超出我们给出的例子。
    • 2、在我们有固定需要使用的框架的情况下,我们用GPT生成用例需要做很多改动和提很多限制性条件,当然我们后续会持续性的对这里的情况进行探索。
    • 3、GPT在给予我们答案的同时,好像一些基础的内容并没有说明,当然之所以不说的原因是因为内容太基础了默认是必会的,但你会不会就是另一说了
  • 在字节写自动化测试用例时,我们用到的工具好像很多都是已经成熟的自动化工具,只需要填写一点信息就能够自动生成,方便的同时其实对QA的能力提升并不大,甚至,,,不说了哈哈哈,这个也是我们积极学习的一个原因。我不可能一辈子在字节,但是字节可能一直有人做这个。

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。

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

​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值