使用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

相關文章
相關標籤/搜索