V1.20 LTS版本是 MeterSphere 开源项目发布的第二个LTS(Long Term Support)版本。MeterSphere开源项目组将对MeterSphere v1.20版本用户提供长期支持,在主线功能版本的基础之上,按需发布 LTS 版本的问题修复更新,为用户提供更加稳定和高质量的软件使用体验。下面介绍下使用K8S 环境如何使用部署并使用企业版【Xpack】UI测试模块能力。
1、环境基本部署可以参考帖子:
2、部署UI运行脚本所需Selenium-Grid
- 创建ms-seleniarm-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: ms-seleniarm
namespace: ms
spec:
selector:
matchLabels:
app: ms-seleniarm
replicas: 1
template:
metadata:
labels:
app: ms-seleniarm
spec:
containers:
- name: ms-seleniarm
image: registry.cn-qingdao.aliyuncs.com/metersphere/seleniarm-grid-all:4.1.4-20220519
imagePullPolicy: IfNotPresent
env:
- name: TZ
value: Asia/Shanghai
- name: SE_EVENT_BUS_HOST
value: "127.0.0.1"
- name: SE_EVENT_BUS_PUBLISH_PORT
value: "4442"
- name: SE_EVENT_BUS_SUBSCRIBE_PORT
value: "4443"
- name: SE_HUB_PORT
value: "4444"
- name: SE_NODE_MAX_SESSIONS
value: "300"
- name: SE_NODE_OVERRIDE_MAX_SESSIONS
value: "true"
- name: browser
value: "chrome"
---
apiVersion: v1
kind: Service
metadata:
name: ms-seleniarm
namespace: ms
spec:
ports:
- name: ms-seleniarm
port: 4444,5900
targetPort: 4444,5900
nodePort: 4444,5900
type: NodePort
selector:
app: ms-seleniarm
- 创建ms-seleniarm pod:
kubectl create -f ms-seleniarm-deploy.yaml
【注意】:使用UI测试需要在 【系统设置】-【授权管理】导入企业版 License 授权文件,如果为开源用户试用可以联系商务获取试用授权。
3、MeterSphere系统参数设置中配置selenium-grid地址
- kubectl get svc -n ms #找到部署好的 Pod 服务名称及端口
- 登录 MeterSphere 测试平台配置elenium-grid地址:http://ms-seleniarm:4444
4、使用UI测试
-
进入UI测试模块,创建UI测试脚本。此处脚本编排模式和接口测试类似。常用组件包括浏览器操作、弹窗操作、鼠标操作、输入操作、流程控制及场景导入;通过组件的方式快速编排脚本。
-
元素定位方法:使用 Selenium 常用定位方法即可https://blog.csdn.net/jierxiaoyao/article/details/104941131,操作简便易上手!
-
调试: 调试支持本地调试、后端调试、生成报告三种模式。
‘
a、本地调试将拉起本地浏览器做步骤回放;需要安装Selenium-server 浏览器驱动
配置参考:【最佳实践】MeterSphere 的 UI 测试模块如何远程调用浏览器 - FIT2CLOUD 知识库
b、后端调试所有执行过程在Selenium-grid中执行,执行完成后结果会做截图。
c、生成报告方式将直接UI测试运行结果为展示报告,所有步骤的断言参数提取均会做展示。
可能遇到的问题:
1、License 文件导入后无UI测试模块。
解决方法:可以在【系统设置】-【用户组与权限】将各用户的UI测试菜单权限勾上
2、部署完成之后点击调试无反应, 提示:Could not start a new session.
目前遇到是ms-seleniarm-deploy.yaml 缺少配置导致,可以按照如图添加配置解决。
-name: browser
value: “chrome”