UI自动化框架搭建(2)框架使用方法(如何将框架结合Selenium IDE更高效地生成用例,如何将框架集成到Jenkins)

2_PC-Web端-UI自动化搭建-使用方法

  • 2_PC-Web端-UI自动化搭建-使用方法
    • 拉取代码
    • 框架使用
      • 项目结构说明
      • 测试浏览器路径设置
      • 数据库设置
      • 使用Selenium IDE录制脚本
      • 运行用例集
      • 主运行文件
    • 集成到Jenkins
      • 配置Jenkins
      • 创建job

拉取代码

打开Pycharm

按照下图点击

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

我们创建一个新的环境

在这里插入图片描述

点击确定

再回到主页面

请添加图片描述

这里先拉取我的代码,后续可以替换成自己的代码仓库

我的建议是去我的仓库把我的代码fork到自己的仓库,然后拉自己的仓库

https://github.com/ZiJie26/UI_AutoTesting.git

请添加图片描述

注意这里要选中你刚刚创建的环境:

请添加图片描述

然后打开控制台,输入:pip install -r requirements.txt

在这里插入图片描述

安装完后可以输入pip list查看是否安装成功。

框架使用

拉下来的代码目录结构是这样的:

.
│  conftest.py          # pytest的全局配置文件,可以在此定义测试的前置/后置操作、hook函数等
│  main_run.py          # 主入口文件,用于启动整个测试项目的执行
│  pytest.ini           # pytest配置文件,用于配置pytest的运行参数,如测试路径、插件配置等
│  README.md            # 项目说明文档,介绍项目的背景、使用方法及结构说明
│  requirements.txt     # 项目所需的依赖库列表,用于通过pip安装依赖
│
├─cases
│  │  __init__.py       # 表示该目录为Python包,可用于初始化相关配置或依赖
│  │
│  ├─data
│  │      test_data.json # 测试数据文件,存储各个测试用例所需的数据,通常以JSON格式保存
│  │
│  └─testFeature
│          test_test1.py # 第一个测试用例文件,使用pytest框架,定义UI自动化测试的具体场景
│          test_test2.py # 第二个测试用例文件,包含另一组自动化测试场景
│          __init__.py   # 初始化文件,标记此目录为Python包,便于模块导入
│
├─config
│      cookies.json      # 登录或其他需要的cookies配置文件,保存登录后使用的cookie信息
│      db_config.json    # 数据库配置文件,存储数据库连接信息和参数
│      dev_paths.json    # 开发环境路径配置文件,包含项目在开发环境下的URL或路径信息
│      test_paths.json   # 测试环境路径配置文件,包含项目在测试环境下的URL或路径信息
│
├─page
│      base_page.py      # 页面基础类,封装常用的页面操作,如点击、输入文本等,是其他页面类的父类
│      __init__.py       # 标记page目录为Python包,便于模块导入
│
├─suites
│      suit1.py          # 测试套件1,组合多个测试用例,作为一组执行
│      suit2.py          # 测试套件2,定义另一组测试用例的组合
│      __init__.py       # 标记此目录为Python包,便于模块导入
│
├─tools
│      cleanup_utils.py  # 工具文件,包含清理测试环境或其他清理任务的工具函数
│      database_utils.py # 数据库工具文件,提供操作数据库的函数,如增删查改等操作
│      sl_cookies.py     # 与cookie相关的工具函数,用于cookie的读取、写入或删除操作
│      webdriver_setup.py# WebDriver配置工具文件,用于配置和启动WebDriver
│      __init__.py       # 标记tools目录为Python包,便于模块导入

项目结构说明

  • 根目录文件

    • conftest.py:这是pytest的全局配置文件,用于定义测试的前置/后置操作、fixture等通用的配置信息。
    • main_run.py:项目的主运行文件,用来配置测试的启动逻辑,可以控制执行哪些测试套件或具体的用例。
    • pytest.ini:用于pytest的配置,可以在这里设置一些pytest运行时的参数,比如测试路径、插件设置等。
    • README.md:文档文件,用于说明项目的目的、安装步骤、如何运行等信息。
    • requirements.txt:Python项目的依赖文件,列出了所有运行该项目所需的库和版本信息。
  • cases目录

    • cases/__init__.py:标记cases目录为Python包,允许从外部导入包中的模块。
    • cases/data/test_data.json:存放测试用例所需的数据,方便测试用例动态使用不同的数据集。
    • cases/testFeature/:用于存放测试用例的具体文件,如test_test1.pytest_test2.py,这些文件中通常会使用pytest框架定义具体的测试场景。
  • config目录

    • 用于存放项目运行环境相关的配置文件,如数据库连接信息(db_config.json)、测试环境路径(test_paths.json)等。不同的环境会有不同的配置文件。
  • page目录

    • base_page.py:封装了常见的页面操作和元素查找方法,其他页面类会继承自这个基础类,用于简化代码复用。
    • __init__.py:标记page目录为Python包,便于模块之间的引用。
  • suites目录

    • 存放测试套件文件,测试套件是多个测试用例的集合,便于按照不同的功能或模块进行批量测试执行。
  • tools目录

    • 存放一些辅助工具文件,例如清理工具(cleanup_utils.py)、数据库操作工具(database_utils.py)、WebDriver配置工具(webdriver_setup.py)等。

测试浏览器路径设置

在config\test_paths.json文件里设置chrome for testing的路径

·

数据库设置

有时候会需要读取数据库的一些数据来验证,比如说测试登录信息是否存储到数据库中

在config\db_config.json文件里输入要连接的数据库信息
请添加图片描述
注意!test_test1.py中有数据库查询代码的示例,但是你是没办法直接用的,得改成自己的

使用Selenium IDE录制脚本

安装完之后可以把它固定显示

在这里插入图片描述

点击上图3号箭头打开下图页面,点第三个选项新建一个Project

在这里插入图片描述

在这里插入图片描述

点击录制之后会弹出被测网站的新窗口,在那个窗口进行你的测试操作(建议不要有多余操作

下图就是在百度首页输入“hi”然后回车后录制下来的内容:

在这里插入图片描述
注意!有些情况下这个插件并不能成功复现你的操作,是插件的问题,这时候就需要导出成脚本在本地运行了

在这里插入图片描述

在这里插入图片描述

点击export导出py脚本

把导出之后的文件放到项目的case/testFeature下(testFeature文件夹类似于存放某个功能模块的用例的文件夹,例如你可以在case文件夹下创建Login文件夹,然后在里面放所有和登录有关的用例)

在这里插入图片描述

将代码修改一下,让其继承Base类,Base类里已经包含了启动和结束时的处理,所以我们把setup和teardown method方法给删掉。然后在用例方法前面打上demo标记,因为我们在pytest.ini文件里设置了仅运行demo或者smoke标记的测试

然后在终端里输入pytest .\cases\testFeature\test_untitled.py运行该脚本

在这里插入图片描述

可以看到运行成功的信息和生成的html报告位置:

在这里插入图片描述

可以直接点击打开,是这样的:

在这里插入图片描述

这个本地报告可以方便对代码调试,更快速的看到是哪个用例出了问题。

同时每次运行过后都会在logs文件夹下打印出日志,如果报错的话会把报错信息也打印出来,同样方便对代码进行调试

在这里插入图片描述

还可以输入allure serve .\report\allure-results查看本次运行的allure报告(一般用不到,本地的allure无法显示结果趋势,要在Jenkins上才能发挥全部能力)

运行用例集

除了使用pytest命令运行单个文件之外,还可以运行集合数个用例的用例套件,落实到业务需求的话,举个例子:你可以创建一个auth_suit.py,里面放登录注册注销等用户认证相关的用例。

我这里就在suites文件夹下面创建用例套件suit1.py,然后在里面添加想要了我想执行的用例:

在这里插入图片描述

可以运行pytest .\suites\suit1.py命令来执行这个套件,但是一般也只是本地调试的时候可以更灵活的执行用例,真正部署到Jenkins上自动执行的时候都是执行main_run.py这个主运行文件。

主运行文件

根目录下的main_run.py就是整个程序的主运行文件,在这里可以配置需要运行的测试套件,我这里就是运行suit1和suit2并把这两个套件命名为test1和test2

在这里插入图片描述

一般直接运行该文件python main_run.py就可以运行这里面的所有套件,当然也可以选择其中几个套件运行,比如说我新添加了suit3,但只想执行suit1和suit2,就执行python main_run.py test1 test2,和前面pytest的方法的区别是,这个只需要一次命令可以执行多个套件。

集成到Jenkins

这里使用Jenkins作为持续集成工具,可以在代码构建完之后执行我们的自动化测试,不过目前仅是演示使用方法,用的是我本地的电脑,并非服务器

配置Jenkins

找到这里,填上你的jdk目录

在这里插入图片描述

然后这里修改为所安装的git的目录

在这里插入图片描述

这里让它自动安装就行

点击应用保存。

然后点击这里配置环境变量,建议把你能想到的目录都加上去

在这里插入图片描述

在这里插入图片描述

不知道conda目录去设置里找,记得把目录下Scripts也要加上

在这里插入图片描述

配置完环境变量之后保存,回到主页

创建job

在这里插入图片描述

在这里插入图片描述

这里的仓库链接可以填我的或者fork之后你自己的,建议还是填你自己的方便后面修改用例

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

搞完应用保存,就部署完了。

可以点击这里开始执行脚本

执行完后

在这里插入图片描述

至此搭建全部完毕

后期既可以把这个job独立出来当作检测历史功能的回归测试
也可以新增代码到pipeline里做冒烟测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值