1. 程式人生 > >在 selenium IDE 外掛中新增上傳雲端平臺的功能

在 selenium IDE 外掛中新增上傳雲端平臺的功能


/**
 * 原生 js 的 Ajax 函式
 * @type {{get: Ajax.get, post: Ajax.post}}
 */
const Ajax = {
  get: function(url, fn) {
    // XMLHttpRequest物件用於在後臺與伺服器交換資料
    var xhr = new XMLHttpRequest()
    xhr.open('GET', url, true)
    xhr.onreadystatechange = function() {
      // readyState == 4說明請求已完成
      if ((xhr.readyState == 4 && xhr.status == 200) || xhr.status == 304) {
        // 從伺服器獲得資料
        fn.call(this, xhr.responseText)
      }
    }
    xhr.send()
  },
  // data應為'a=a1&b=b1'這種字串格式,在jq裡如果data為物件會自動將物件轉成這種字串格式
  post: function(url, data, fn) {
    var xhr = new XMLHttpRequest()
    xhr.open('POST', url, true)
    // 新增http頭,傳送資訊至伺服器時內容編碼型別
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
    xhr.onreadystatechange = function() {
      if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {
        fn.call(this, xhr.responseText)
      }
    }
    xhr.send(data)
  },
}

export function uploadProject(_project) {
  const project = _project.toJS()
  const sideJson = JSON.stringify(project)

  ModalState.showAlert(
    {
      title: '上傳雲端',
      description: sideJson,
      confirmLabel: '確定',
      cancelLabel: '取消',
    },
    choseUpload => {
      if (choseUpload) {
        //const host = 'https://sinfo.alibaba.net'
        const host = 'https://localhost:9000'
        const token = uuidv4()
        let data = {
          name: project.name,
          sideJson: sideJson,
          token: token,
        }
        Ajax.post(
          `${host}/uitestcase/upload.api`,
          JSON.stringify(data),
          res => {
            console.log(res)
          }
        )
      }
    }
  )
}