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,⭐️⭐️⭐️有想法可以留言,一定在第一时间回复欢迎骚扰

相关推荐
这我可不懂43 分钟前
低代码开发 实战转型案例一览
前端·低代码·程序员
AI服务老曹13 小时前
报警推送消息升级的名厨亮灶开源了
人工智能·安全·开源·音视频
吴敬悦16 小时前
领导:按规范提交代码conventionalcommit
前端·程序员·前端工程化
DevUI团队17 小时前
震惊!2024年DevUI开源社区竟然还做了这些!!
前端·开源
程序员联盟19 小时前
用ChatGPT来提高效率:前言
人工智能·chatgpt·程序员
NocoBase1 天前
GitHub 上排名前 11 的开源管理后台(Admin Dashboard)项目
低代码·开源·github·仪表盘·admin
blzlh1 天前
Vue 数据驱动页面,让我们专注于业务开发
前端·vue.js·程序员
木卫二号Coding1 天前
docker-开源nocodb,使用已有数据库
数据库·docker·开源
loooooongger1 天前
UI自动化测试之:自动获取元素定位技术哪家强
测试
breaksoftware1 天前
低代码开源项目Joget的研究——Joget8社区版安装部署
低代码·开源