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

前言

自动化脚本能够完成任何事情,帮助你们节省时间和成本,这也是机器人流程自动化(RPA)和自动化测试在企业中应用愈来愈广的缘由。下面就介绍一个经过脚本自动化备份文件的步骤,懂一点JavaScript的同窗都能轻松实现噢。javascript

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

准备

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

操做步骤

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

具体操做

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

image.png | left | 589x286

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

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

image.png | left | 495x371

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

image.png | left | 345x391

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

image.png | left | 691x320

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

image.png | left | 691x175

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

image.png | left | 719x343

  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的脚本支持命令行执行,具体能够在【运行】--【编辑运行配置】中能够找到。

image.png | left | 593x580

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

总结

下次要备份别的目录只要修改feature文件中目录信息就能够了,无需修改代码。有兴趣的同窗能够触类旁通,将日常繁琐的操做自动化,只须要一些node.js的基础知识,就能够快速编写一个能够自动化的场景。当这些场景积累多了,能够组合成一个自动化流程,那时你就是流程自动化的专家啦。async

相关文章
相关标签/搜索