Как настроить прокси в Appium с помощью Ionic и Protractor - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь запустить сквозные тесты на реальном устройстве Android для моего проекта Ionic 4 с Protractor и Appium, потому что я использую плагины Cordova для собственных функций.Моя проблема: когда я пытаюсь запустить свои тесты E2E с помощью Appium, приложение запускается на моем устройстве, но затем Appium застревает с вызовом состояния, получающим неожиданный ответ и HTML-страницей, отправленной моим прокси.

Я работаю на виртуальной машине Linux и с прокси, но прокси правильно настроен как на виртуальной машине, так и на npm.Есть ли где-то еще, я должен настроить это?

Вот еще некоторые сведения:

Запуск 'adb devices':

List of devices attached
ce12171ccbeb793b05  device

Файл конфигурации моего транспортира (protractor.conf.js):

let path = require('path');
let wd = require('wd');
let protractor = require('protractor');
let wdBridge = require('wd-bridge')(protractor, wd);

exports.config = {
  seleniumAddress: 'http://localhost:4723/wd/hub',
  specs: [
    './src/**/*.e2e-spec.ts'
  ],
  capabilities:
      {
        platformName: 'android',
        platformVersion: '8.0',
        deviceName: 'ce12171ccbeb793b05',
        automationName: 'UiAutomator2',
        browserName: "",
        autoWebview: true,
        app: path.join(__dirname, '../platforms/android/app/build/outputs/apk/debug/app-debug.apk'),
      },
  baseUrl: 'http://localhost:8000/',
  onPrepare() {
    wdBridge.initFromProtractor(exports.config);
  }
};

Журнал Appium, когда он застрял:

[debug] [Chromedriver] Chromedriver version: '2.46.628388'
[debug] [WD Proxy] Matched '/status' to command name 'getStatus'
[debug] [WD Proxy] Proxying [GET /status] to [GET http://127.0.0.1:8000/wd/hub/status] with no body
[WD Proxy] Got an unexpected response: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
[WD Proxy] <html><head>
[WD Proxy] <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
[WD Proxy] <title>ERROR: The requested URL could not be retrieved</title>
[WD Proxy] <style type="text/css"><!--
[WD Proxy]  /*
[WD Proxy]  Stylesheet for Squid Error pa...
[debug] [WD Proxy] Matched '/status' to command name 'getStatus'
[debug] [WD Proxy] Proxying [GET /status] to [GET http://127.0.0.1:8000/wd/hub/status] with no body
[WD Proxy] Got an unexpected response: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
[WD Proxy] <html><head>
[WD Proxy] <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
[WD Proxy] <title>ERROR: The requested URL could not be retrieved</title>
[WD Proxy] <style type="text/css"><!--
[WD Proxy]  /*
[WD Proxy]  Stylesheet for Squid Error pa...
[debug] [WD Proxy] Matched '/status' to command name 'getStatus'

И, наконец, возвращает это:

[Chromedriver] Chromedriver exited unexpectedly with code null, signal SIGTERM
[debug] [Chromedriver] Changed state to 'stopped'
[Chromedriver] Error: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to remote server. Original error: 403 - "<!DOCTYPE html PUBLIC \"-//W3C//...

HTML-код, следующий за ошибкой 403, говорит мне:

ERROR
The requested URL could not be retrieved
The following error was encountered while trying to retrieve the URL: http://127.0.0.1:8200/wd/hub/status

Access Denied.

Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.

Я не знаю, почему прокси-сервер отклоняет запрос статуса с ошибкой 403, и я не знаю, может ли он быть настроен моей стороной или только администратором прокси.Есть ли у вас какие-либо идеи ?Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...