首页 > 其他分享 >UI自动化测试方案及各个环境部署步骤

UI自动化测试方案及各个环境部署步骤

时间:2024-10-21 15:44:14浏览次数:7  
标签:Shell 浏览器 测试 步骤 chromedriver UI install 自动化 目录

Saas后台UI自动化测试方案
一、背景

  1. saas后台功能繁多,人工回归工作量大;
  2. 版本持续迭代周期快,无足够的人力资源进行全量回归测试,特别是后端架构变动时,影响范围很广,导致测试占用时间太多。

二、目标

目标一:对冒烟测试、主功能回归测试进行自动化,这样可以持续,快速的分析新需求加入,版本质量是否有影响,避免回归不到位引起之前功能的问题。
目标二:在版本快速迭代的过程中,自动化测试的目的并不是在于发现更多的bug,而是为了产品质量的保证,充当版本质量的守门神,不是为了发现更多bug,而是为了保证版本没有问题,其实更多的bug还是需要手工测试去发现的。

三、框架介绍
(一)框架技术

  1. 语言:python
  2. 模块:selenium(驱动浏览器)、pytest(驱动测试用例)、allure(生成测试报告)、yaml(测试数据管理)
    (二)框架结构

Conf - setting 配置文件
Data - case 测试用例存放目录
Data - locs 定位元素存放目录
Logs 运行日志存放目录
Picture 截图存放目录
Report 测试报告存放目录
Test 测试用例执行目录
Utils 通用工具存放目录
Start 启动文件
(三)框架优势
i. 代码量少:通用的工具已经封装好,测试用例的模板可以复制,只需要编写定位元素和测试用例数据
ii. 运行有截图:运行过程、运行失败和断言成功与否都有截图
iii. 运行有日志:运行过程有日志记录
iv. 报告精美:报告好看
v. 支持DDT数据驱动:一个测试test文件可以支持多个测试用例执行
vi. 多浏览器兼容:可以测试谷歌和火狐浏览器
vii. 可以无头模式执行:无界面运行浏览器执行UI自动化测试(运行速度比打开浏览器界面话运行快)
viii. 支持测试报告发送邮件

ix. 支持测试报告发送飞书

(四)测试报告

总览有历史执行记录,每个场景具体的执行明细
四、多人协作
规范
a. 代码管理:gitlab
b. 包名命名规则:帕斯卡命名(每个单词首字母大写)
c. 类名命名规则:帕斯卡命名(每个单词首字母大写)
d. 方法名命名规则:单词间用下划线
e. 定位元素管理:存放data-locs文件夹,每个模块单独一个文件管理

f. 测试用例数据管理:存放在data-case目录中,每个模块单独一个文件

g. 测试用例执行管理:每个测试执行用例存放test文件中,包名命名test_开头,类名以Test_,方法名以test_*开头

相关地址
Gitlab 地址
https://gitlab.nihao.tech/nihao/QA/nihaoui.git
Jenkins 地址
http://127.0.0.1:8080/jenkins/
账号:admin
密码:admin

五、环境搭建
windows环境
安装python
下载安装相关模块

Shell
pip install selenium

Shell
pip install pyyaml

Shell
pip install allure-pytest

Shell
pip install pytest

下载allure包解压后放在python中Lib目录下

bin路径配置到系统变量path中

浏览器驱动
需要对应直接的Chrome版本,下载对应的Chromedriver
Chrome的版本就在 设置->关于Chrome这边查看

通过网址http://chromedriver.storage.googleapis.com/index.html下载驱动,比如我的浏览器是99

下载任意三个进行测试,可以正常操作即可,版本尾号比目录中的大,先试最新的
下载之后就需要将Chromedriver.exe放到谷歌浏览器目录
(如 C:\Program Files(x86)\Google\Chrome\Application)
以及python根目录(C:\Python3)(这个是因人而异的)

最后就是将谷歌浏览器环境变量添加到PATH中(如果你的谷歌目录是这个的话,就放这个C:\Program Files(x86)\Google\Chrome\Application)

注意环境变量是用户环境变量:

如果是用户变量无法启动浏览器,可以放在系统变量中
mac环境
安装相关模块

Shell
pip install selenium

Shell
pip install pyyaml

Shell
pip install allure-pytest

Shell
pip install pytest

Shell
pip install allure
浏览器驱动
需要对应直接的Chrome版本,下载对应的Chromedriver
Chrome的版本就在 设置->关于Chrome这边查看

通过网址http://chromedriver.storage.googleapis.com/index.html下载驱动,比如我的浏览器是99

下载任意三个进行测试,可以正常操作即可,版本尾号比目录中的大,先试最新的。
然后将下载好的chromedriver 移动到/usr/local/bin目录下
打开终端执行命令:
前提:先切到你下载的chromedriver存放的目录下在执行如下命令。

Shell
sudo mv chromedriver /usr/local/bin
将chromedriver添加到环境变量中
打开:open .bash_profile

Shell
export PATH=$PATH:/usr/local/bin/chromedriver
source .bash_profile

linux环境
前提:
python3.x已安装
相关依赖已安装
1、需要安装 Chrome 浏览器

Shell
yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
2、安装必要库

Shell
yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts
3、安装驱动
(1)查看版本号

CSS
google-chrome --version
(2)去淘宝源找寻对应的文件
http://npm.taobao.org/mirrors/chromedriver/
或者
https://registry.npmmirror.com/binary.html?path=chromedriver/

http://chromedriver.storage.googleapis.com/index.html
(3)找到后,下载

Shell
wget http://npm.taobao.org/mirrors/chromedriver/90.0.4430.24/chromedriver_linux64.zip
(4)解压,赋权

Shell
unzip chromedriver_linux64.zip

mv chromedriver /usr/bin/ chome安装目录

cd /usr/bin

chmod +x /usr/bin/chromedriver
查看chromedriver版本号

Shell
chromedriver --version

六、持续集成
持续集成环境调研
a. linux集成jenkins
b. docker集成jenkins 构建镜像运行
c. windows集成jenkins
由于linux环境好狡猾,环境要求比较苛刻,兼容性不是太好,比如dp后台的输入框,linxu运行的时候,手机号没有输入成功,windows系统没有问题。查阅相关资料说明缺乏,不过有人说是环境搭建有问题,比如浏览器版本,浏览器驱动版本或者selenium版本问题....总之就是环境没有搭建好。在windows中比较容易解决,很快可以把环境搭建起来,且可以快速把本地调试好的测试代码应用在集成环境测试,不用在linux出问题在排查问题,节约时间
建议在windows系统中进行持续集成测试
集成部署步骤
前提条件:
1,Jenkins已经安装
2,已经安装python3.X版本,我目前安装的是python3.7
3,自动化测试脚本已编写完成
Jenkins集成与Allure测试报告
jenkins平台安装Allure插件
系统管理--插件管理:安装插件allure

安装 Parameterized Trigger
系统管理--插件管理:Parameterized Trigger

配置Allure Commandline
系统管理--全局工具配置:Allure Commandline

构建一个项目
新建自由风项目

配置 General
使用自定义工作空间

☑️ Use alternative credential
Credential : Gitlab API token

源码管理
本项目采用gitlab

构建任务

Shell

!/bin/bash

cd /root/.jenkins/workspace/ui_auto_digiprime_saas
python3 -m pytest -sq --alluredir=allure-results
python3 feishu.py $JOB_URL $JOB_NAME
exit 0
构建后操作构建allure报告

构建结果验证

标签:Shell,浏览器,测试,步骤,chromedriver,UI,install,自动化,目录
From: https://www.cnblogs.com/simon1993/p/18489609

相关文章

  • Shadcn UI:现代前端的灵活组件库
    简要介绍ShadcnUI与其他UI和组件库如MaterialUI、AntDesign、ElementUI的设计理念截然不同。这些库一般通过npm包提供对组件的访问,而ShadcnUI允许用户将单个UI组件的源代码直接下载到项目中,提供了更大的灵活性和定制空间。按照ShadcnUI的说法,ShadcnUI实际......
  • SpringBoot 2.7.18 集成 Mybatis Plus + Druid
    目录Pom依赖yml配置Config配置Mapper扫描EntityMapper.xmlMapper-SysMenuMapperServiceController一并附上Mybatis和MybatisPlus的使用区别MyBatisMapper.XML标签使用说明Pom依赖Mybatis<!--统一管理jar包版本--><properties><druid-boot.version>1.......
  • keycloak~Consent Required的使用
    ConsentRequired在keycloak中是“授权所需”,或者是“同意必需“的意思,它类似于oauth2授权时的“确认”,当你在第三方认证后,通过oauth2协议,你可以把用户相关信息返回给应用程序,而这时,用户自己需要确认一下,自己的这些信息是否可以给应用程序。为客户端配置ConsentRequired选项可......
  • Nuxt.js 应用中的 build:done 事件钩子详解
    title:Nuxt.js应用中的build:done事件钩子详解date:2024/10/21updated:2024/10/21author:cmdragonexcerpt:build:done是Nuxt.js的一个生命周期钩子,它在Nuxt应用的打包构建器完成运行后被调用。这个钩子为开发者提供了一个在构建过程结束后执行特定逻辑的机会,可......
  • 华为鸿蒙 UIAbility 组件:构建用户界面的舞台
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。华为鸿蒙系统的阶段模型为开发者提供了......
  • 华为鸿蒙嵌入式 UI 扩展组件:跨越界限的舞台
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在华为鸿蒙系统的舞台上,UIAbility组件......
  • 企业信息管理系统/企业管理软件/信息管理系统/ERP系统/CRM系统/企业信息化/办公自动化
    博主介绍......
  • 无人超市管理系统/无人超市解决方案/智能化零售管理/自助结账系统/无人便利店技术/自
    博主介绍......
  • Raspberry Pi和Arduino哪个更适合DIY项目
    RaspberryPi和Arduino都是流行的DIY项目工具,但它们各有特点和适用范围。RaspberryPi是一种微型计算机,适合需要计算能力的项目,如媒体中心、游戏机或小型服务器。Arduino是一个微控制器板,适合控制简单的硬件项目,如自动化系统和传感器网络。选择哪个取决于项目需求:需要更多计算能......
  • Linux | CentOS7安装Java17的详细步骤
    步骤1:更新系统在安装Java之前,确保系统包是最新的。sudoyumupdate-y步骤2:下载Java17从Oracle官方网站或AdoptOpenJDK下载Java17。如果使用OracleJDK,可以到Oracle网站下载。如果使用AdoptOpenJDK,可以使用以下命令:wgethttps://github.com/adoptium/temurin17-bina......