etest 高级变量支持 文件上传用例

各位伙伴,好久不见,今天我们带来了新的版本迭代,eTest 上线,得到的好多测试小伙伴的喜欢,再次感谢各位的支持,同时我们也收到的很多功能上的反馈,反馈最多的一个问题就是怎么支持录制上传文件,这个测试场景可能也是很多小伙伴的使用eTest 最大的困扰吧

小伙伴的反馈我们也会想尽办法,解决问题,在经过一系列的技术调研,今天我们发布了版本更新,本次更新带来了两个重大功能,一个是大家心心念念的文件上传功能,另外一个支持mock ,支持通过mock 数据,针对特殊场景的自动化测试

今天我们一起先来学习第一个功能文件上传

快速上手

文件上传这个场景比较特别,我们无法使用脚本录制,涉及到对本地文件的访问,我们可以通过修改测试脚本文件解决这个问题

首先我们要熟悉一下上传对应的字段 测试用例中有些测试场景需要支持文件上传,针对这个测试用例,可能需要开发者code代码

json 复制代码
{
	"xpath": "//*[@id=\"page-content\"]/div/div/div[1]/div/div[1]/div[1]/div/div[1]/input",
   "filePath": "/Users/xxx/Desktop/desktop/myproject/load.png",
   "type": "upload",
   "iframe": "",
   "selector": "document",
   "url": "https://www.xiaomiyoupin.com/",
}

关键 key

key 描述 是否必填
url 当前打开的 URL 地址信息 Y
filePath 上传文件路径地址,支持绝对路径,或者默认桌面文件 Y
type 获取当前操作的 dom 操作类型 upload Y
xpath 获取当前操作的 dom 的唯一地址 Y
selector 获取当前操作的 dom 的路径信息 N
iframe 当前网页是否嵌有 iframe 地址 N

获取xpath

怎么获取xpath 路径,首先打开浏览器,输入页面,按f12 或者 鼠标右键选择检查 打开开发者模式

选择elements 然后选择点击作左边的鼠标icon

点击选中上传按钮信息,获取对应的上传input元素

然后选择elements对应的dom元素,然后鼠标右键菜单选择copy 选择 copy xpath

注意:获取的xpath 路径信息必须是input 结尾的文件上传控件,不然上传失败,并且对获取的xpath路径信息有"需要转译

json 复制代码
//*[@id="page-content"]/div/div/div[1]/div/div[1]/div[1]/div/div[1]/input

转换成下列方式

json 复制代码
"xpath": "//*[@id=\"page-content\"]/div/div/div[1]/div/div[1]/div[1]/div/div[1]/input",

文件路径

文件路径支持取本地绝对路径,如果只是一个文件名,则会默认桌面文件查找

json 复制代码
 "filePath": "/Users/xxx/Desktop/desktop/myproject/image.jpg",

//或者
 
"filePath": "image.jpg"

为了方便入手,我们以element-plus为例,做了一个测试demo ,大家可以复制以下的信息,尝试演示,需要注意,必须保证你的桌面有一张image.jpg 的图片, 可以本地新建一个json文件,然后把下面的代码保存到json 文件中,上传到eTest工具中运行

json 复制代码
[
	{
		"active": true,
		"audible": false,
		"autoDiscardable": true,
		"discarded": false,
		"favIconUrl": "https://element-plus.org/images/element-plus-logo-small.svg",
		"groupId": -1,
		"height": 759,
		"highlighted": true,
		"id": 84058496,
		"incognito": false,
		"index": 15,
		"lastAccessed": 1709813379812.512,
		"mutedInfo": { "muted": false },
		"pinned": false,
		"selected": true,
		"status": "loading",
		"title": "Upload 上传 | Element Plus",
		"url": "https://element-plus.org/zh-CN/component/upload.html",
		"width": 1920,
		"windowId": 84054912,
		"action": "start",
		"cookies": [],
		"indexNum": 0,
		"date": 1709813400418,
		"localStorage": {
		},
		"sessionStorage": {},
		"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
		"isMobile": false,
		"hasTouch": false,
		"deviceScaleFactor": 1,
		"type": "start"
	},
	{
		"xpath": "//html",
		"iframe": "",
		"selector": "document",
		"scrollTop": 168,
		"scrollLeft": 0,
		"type": "scrollWin",
		"url": "https://element-plus.org/zh-CN/component/upload.html",
		"indexNum": 1,
		"date": 1709813414914
	},
	{
		"xpath": "//*[@id=\"page-content\"]/div/div/div[1]/div/div[1]/div[1]/div/div[1]/input",
		"filePath": "image.jpg",
		"type": "upload",
		"iframe": "",
		"selector": "#page-content > div > div > div.doc-content > div > div:nth-child(5) > div.example-showcase > div > div.el-upload.el-upload--text > input",
		"url": "https://element-plus.org/zh-CN/component/upload.html"
	},
]

欢迎大家去体验一下探索的乐趣👉 乐趣链接eTest,也欢迎大家给个star,⭐️⭐️⭐️有想法可以留言,一定在第一时间回复欢迎骚扰

相关推荐
虚无境7 小时前
关于10年工作经验的程序员对OpenClaw的实战经验分享以及看法
程序员·openai·ai编程
人间打气筒(Ada)8 小时前
「码动四季·开源同行」HarmonyOS应用开发:常见组件
华为·开源·harmonyos·组件·布局·鸿蒙开发
si莉亚9 小时前
ROS2安装EVO工具包
linux·开发语言·c++·开源
田八10 小时前
聊聊AI的发展史,AI的爆发并不是偶然
前端·人工智能·程序员
M ? A11 小时前
Vue 迁移 React 实战:VuReact 一键自动化转换方案
前端·vue.js·经验分享·react.js·开源·自动化·vureact
Mars酱11 小时前
1分钟编写贪吃蛇 | JSnake贪吃蛇单机版
java·后端·开源
2301_8227032012 小时前
开源鸿蒙跨平台Flutter开发:幼儿疫苗全生命周期追踪系统:基于 Flutter 的免疫接种档案与状态机设计
算法·flutter·华为·开源·harmonyos·鸿蒙
wasp52012 小时前
从 Vibe Coding 到真·生产力:OpenHarness 的“Harness 方程式”及其实战分析
人工智能·架构·开源·agent
M ? A14 小时前
Vue转React实战:defineProps精准迁移实战
前端·javascript·vue.js·经验分享·react.js·开源·vureact