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

相关推荐
hvinsion1 小时前
【开源】Python打造高效剪贴板历史管理器:实现跨平台生产力工具
开发语言·python·开源·剪切板·粘贴历史记录
hvinsion1 小时前
【开源解析】基于Python的智能文件备份工具开发实战:从定时备份到托盘监控
开发语言·python·开源·文件备份·定时备份
2301_787552872 小时前
Coco AI 开源应用程序 - 搜索、连接、协作、您的个人 AI 搜索和助手,都在一个空间中。
前端·人工智能·开源
酷讯网络_2408701602 小时前
Thinkphp开发自适应职业学生证书查询系统职业资格等级会员证书管理网站
学习·开源
敖行客 Allthinker2 小时前
Redis 重回开源怀抱:开源精神的回归与未来展望
数据库·redis·开源
waves浪游3 小时前
论坛系统测试报告
测试工具·测试用例·bug·测试
说私域12 小时前
基于开源链动2+1模式AI智能名片S2B2C商城小程序的爆品力构建研究
人工智能·小程序·开源·零售
编程乐趣17 小时前
一个基于Asp.Net Core + Angular + Bootstrap开源CMS系统
开源·bootstrap·asp.net
SnXJi_18 小时前
纷析云开源财务软件:低成本构建企业自主的数字化财务中枢
java·git·开源·开源软件
说私域19 小时前
数字传播生态中开源链动模式与智能技术协同驱动的品牌认知重构研究——基于“开源链动2+1模式+AI智能名片+S2B2C商城小程序”的场景化传播实践
人工智能·小程序·重构·开源·零售