使用CukeTest创建脚本自动化备份文件到网盘

本文介绍如何使用CukeTest和JavaScript编写自动化脚本,实现非会员也能在百度网盘进行文件备份,包括设置本地备份目录、自动化上传等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

自动化脚本可以完成任何事情,帮助大家节省时间和成本,这也是机器人流程自动化(RPA)和自动化测试在企业中应用越来越广的原因。下面就介绍一个通过脚本自动化备份文件的步骤,懂一点JavaScript的同学都能轻松实现噢。

百度网盘作为一款常用的网络存储软件,可以帮助我们将文件存储到云端,为保存文件提供了很大的便利。同时,百度网盘有个【自动备份文件夹】的功能,以便于自动同步。但是这个功能是会员,需要收费才能用。假如你和我一样不是会员,恰巧又想用到这个功能。那就跟着我来写一个简单的自动化脚本来实现这个功能吧!

准备

  • 操作系统:Windows7以及以上版本的Windows。
  • 客户端:安装百度网盘Windows桌面客户端。
  • 代码: CukeTest 内置有Windows桌面应用自动化库的一款自动化编辑器 cuketest.com/download

操作步骤

  1. 设置本地需要备份的文件夹
  2. 获取本地目录中文件名
  3. 自动化脚本操作百度网盘打开本地目录上传此目录文件。

具体操作

  1. 打开CukeTest,新建项目,选择【Windows】模块。

  1. 编辑feature文件,输入功能描述。

    # language: zh-CN
    功能: 备份文件到百度网盘
    百度的自动备份功能需要会员才能用,作为没有会员的我写一段自动化脚本来实现类似功能
    
      场景: 自动备份文件到百度网盘
        假如将"D:\\backups" 目录作为需要备份的目录。
        同时获取此目录下所有文件。
        那么将此目录文件上传到百度网盘。
    
    复制代码

  1. 备份文件的操作:打开百度网盘,点击【上传】按钮,选择文件夹,上传。根据手工操作步骤,准备百度网盘客户端的对象模型。打开model1.tmodel文件;使用CukeTest自带的Windows对象识别器查找元素。 百度网盘的界面不是用标准的Windows控件来做的。使用对象识别器只能识别到整个Window。这里介绍一下对象识别器的另一个功能--【虚拟对象识别】。具体操作如下: (也可以参考腾讯课堂免费视频:ke.qq.com/course/3473…
    1. 在识别到的整个Windows控件上右键--【编辑虚拟控件】

2. 在编辑虚拟控件界面。【添加虚拟控件】--画出【上传】按钮的位置,并修改控件名为【上传】
复制代码

3. 点击确定。在对象模型管理器中可以实现对【上传】控件的定位。
复制代码

  1. 使用模型管理器获取文件上传对话框的对象模型。

  1. 根据描述实现自动化脚本。 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);
    });
    复制代码
  2. 运行 点击【运行】按钮,即可看到自动化脚本可以自动打开百度网盘上传文件。
  3. 扩展 CukeTest的脚本支持命令行执行,具体可以在【运行】--【编辑运行配置】中可以找到。

编辑运行配置中复制生成的命令行,可以直接在命令行中运行,所以可以将此命令写到bat脚本中。设置定时任务执行来实现定时上传文件。或者在Jenkins中配置定时任务实现定时自动备份文件。

总结

下次要备份别的目录只要修改feature文件中目录信息就可以了,无需修改代码。有兴趣的同学可以举一反三,将平常繁琐的操作自动化,只需要一些node.js的基础知识,就可以快速编写一个可以自动化的场景。当这些场景积累多了,可以组合成一个自动化流程,那时你就是流程自动化的专家啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值