在 selenium IDE 插件中添加上传云端平台的功能

2018-12-26 16:58:41 浏览数 (1)

代码语言:javascript复制
/**
 * 原生 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)
          }
        )
      }
    }
  )
}

0 人点赞