自動化腳本能夠完成任何事情,幫助你們節省時間和成本,這也是機器人流程自動化(RPA)和自動化測試在企業中應用愈來愈廣的緣由。下面就介紹一個經過腳本自動化備份文件的步驟,懂一點JavaScript的同窗都能輕鬆實現噢。javascript
百度網盤做爲一款經常使用的網絡存儲軟件,能夠幫助咱們將文件存儲到雲端,爲保存文件提供了很大的便利。同時,百度網盤有個【自動備份文件夾】的功能,以便於自動同步。可是這個功能是會員,須要收費才能用。假如你和我同樣不是會員,恰巧又想用到這個功能。那就跟着我來寫一個簡單的自動化腳原本實現這個功能吧!java
編輯feature文件,輸入功能描述。node
# language: zh-CN
功能: 備份文件到百度網盤
百度的自動備份功能須要會員才能用,做爲沒有會員的我寫一段自動化腳原本實現相似功能
場景: 自動備份文件到百度網盤
假如將"D:\\backups" 目錄做爲須要備份的目錄。
同時獲取此目錄下全部文件。
那麼將此目錄文件上傳到百度網盤。
複製代碼
2. 在編輯虛擬控件界面。【添加虛擬控件】--畫出【上傳】按鈕的位置,並修改控件名爲【上傳】
複製代碼
3. 點擊肯定。在對象模型管理器中能夠實現對【上傳】控件的定位。
複製代碼
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);
});
複製代碼
編輯運行配置中複製生成的命令行,能夠直接在命令行中運行,因此能夠將此命令寫到bat腳本中。設置定時任務執行來實現定時上傳文件。或者在Jenkins中配置定時任務實現定時自動備份文件。網絡
下次要備份別的目錄只要修改feature文件中目錄信息就能夠了,無需修改代碼。有興趣的同窗能夠觸類旁通,將日常繁瑣的操做自動化,只須要一些node.js的基礎知識,就能夠快速編寫一個能夠自動化的場景。當這些場景積累多了,能夠組合成一個自動化流程,那時你就是流程自動化的專家啦。async