前言
自动化脚本可以完成任何事情,帮助大家节省时间和成本,这也是机器人流程自动化(RPA)和自动化测试在企业中应用越来越广的原因。下面就介绍一个通过脚本自动化备份文件的步骤,懂一点JavaScript的同学都能轻松实现噢。
百度网盘作为一款常用的网络存储软件,可以帮助我们将文件存储到云端,为保存文件提供了很大的便利。同时,百度网盘有个【自动备份文件夹】的功能,以便于自动同步。但是这个功能是会员,需要收费才能用。假如你和我一样不是会员,恰巧又想用到这个功能。那就跟着我来写一个简单的自动化脚本来实现这个功能吧!
准备
- 操作系统:Windows7以及以上版本的Windows。
- 客户端:安装百度网盘Windows桌面客户端。
- 代码: CukeTest 内置有Windows桌面应用自动化库的一款自动化编辑器 cuketest.com/download
操作步骤
- 设置本地需要备份的文件夹
- 获取本地目录中文件名
- 自动化脚本操作百度网盘打开本地目录上传此目录文件。
具体操作
- 打开CukeTest,新建项目,选择【Windows】模块。
-
编辑feature文件,输入功能描述。
# language: zh-CN 功能: 备份文件到百度网盘 百度的自动备份功能需要会员才能用,作为没有会员的我写一段自动化脚本来实现类似功能 场景: 自动备份文件到百度网盘 假如将"D:\\backups" 目录作为需要备份的目录。 同时获取此目录下所有文件。 那么将此目录文件上传到百度网盘。 复制代码
- 备份文件的操作:打开百度网盘,点击【上传】按钮,选择文件夹,上传。根据手工操作步骤,准备百度网盘客户端的对象模型。打开model1.tmodel文件;使用CukeTest自带的Windows对象识别器查找元素。 百度网盘的界面不是用标准的Windows控件来做的。使用对象识别器只能识别到整个Window。这里介绍一下对象识别器的另一个功能--【虚拟对象识别】。具体操作如下: (也可以参考腾讯课堂免费视频:ke.qq.com/course/3473…)
- 在识别到的整个Windows控件上右键--【编辑虚拟控件】
2. 在编辑虚拟控件界面。【添加虚拟控件】--画出【上传】按钮的位置,并修改控件名为【上传】
复制代码
3. 点击确定。在对象模型管理器中可以实现对【上传】控件的定位。
复制代码
- 使用模型管理器获取文件上传对话框的对象模型。
- 根据描述实现自动化脚本。 definitions1.js
const { Given, When, Then } = require('cucumber'); const { TestModel, Auto } = require('leanpro.win'); const { Util } = require('leanpro.common'); const path = require('path'); let fs = require('fs'); let model = TestModel.loadModel(__dirname + "/model1.tmodel"); 你的步骤定义 / var backpath; Given(/^将"([^"]*)" 目录作为需要备份的目录。$/, async function (dirpath) { backpath = path.join(dirpath); }); var filestring=''; Given(/^获取此目录下所有文件。$/, async function () { let moment =require('moment') let date = moment().format('YYYY-MM-DD'); let dir = path.join(backpath); let files = fs.readdirSync(dir) for(var i =0;i<files.length;i++){ filestring += '"'+files[i]+'" ' } }); Then(/^将此目录文件上传到百度网盘。$/, async function () { await model.getVirtual("上传").click(0, 0, 1); await model.getEdit("文件名(N):1").clearAll(); await model.getEdit("文件名(N):1").set(backpath); await model.getButton("存入百度网盘").click(0, 0, 1); await model.getEdit("文件名(N):1").set(filestring); console.log(filestring) await model.getButton("存入百度网盘").click(0, 0, 1); }); 复制代码
- 运行 点击【运行】按钮,即可看到自动化脚本可以自动打开百度网盘上传文件。
- 扩展 CukeTest的脚本支持命令行执行,具体可以在【运行】--【编辑运行配置】中可以找到。
编辑运行配置中复制生成的命令行,可以直接在命令行中运行,所以可以将此命令写到bat脚本中。设置定时任务执行来实现定时上传文件。或者在Jenkins中配置定时任务实现定时自动备份文件。
总结
下次要备份别的目录只要修改feature文件中目录信息就可以了,无需修改代码。有兴趣的同学可以举一反三,将平常繁琐的操作自动化,只需要一些node.js的基础知识,就可以快速编写一个可以自动化的场景。当这些场景积累多了,可以组合成一个自动化流程,那时你就是流程自动化的专家啦。