Je veux configurer le processus de Test automatisé des applications mobiles pour Android et iOS plates-formes (réagissant comme natif). Pour cela, j'utilise appium et webdriverio . À titre d'exemple, j'utilise l'existant appium-chaileret CodeBase et un prêt-fait Application Pour exécuter des tests. J'exécute l'application dans l'émulateur Android . Les paramètres de base sont présentés ci-dessous.
1. Appium
2. Webdriverio
wdio.shared.conf.js
exports.config = {
// ====================
// Runner and framework
// Configuration
// ====================
runner: 'local',
framework: 'jasmine',
jasmineNodeOpts: {
// Updated the timeout to 30 seconds due to possible longer appium calls
// When using XPATH
defaultTimeoutInterval: 90000,
helpers: [require.resolve('@babel/register')],
},
sync: true,
logLevel: 'silent',
deprecationWarnings: true,
bail: 0,
baseUrl: 'http://the-internet.herokuapp.com',
waitforTimeout: 10000,
connectionRetryTimeout: 90000,
connectionRetryCount: 3,
reporters: ['spec'],
// ====================
// Appium Configuration
// ====================
services: [
[
'appium',
{
// For options see
// https://github.com/webdriverio/webdriverio/tree/master/packages/wdio-appium-service
args: {
// Auto download ChromeDriver
relaxedSecurity: true,
// chromedriverAutodownload: true,
// For more arguments see
// https://github.com/webdriverio/webdriverio/tree/master/packages/wdio-appium-service
},
command: 'appium',
},
],
],
port: 4723,
};
wdio.android.app.conf.js.
const { join } = require('path');
const { config } = require('./wdio.shared.conf');
// ============
// Specs
// ============
config.specs = [
'./tests/specs/**/app*.spec.js',
];
// ============
// Capabilities
// ============
// For all capabilities please check
// http://appium.io/docs/en/writing-running-appium/caps/#general-capabilities
config.capabilities = [
{
// The defaults you need to have in your config
platformName: 'Android',
maxInstances: 1,
// For W3C the appium capabilities need to have an extension prefix
// http://appium.io/docs/en/writing-running-appium/caps/
// This is `appium:` for all Appium Capabilities which can be found here
'appium:udid': 'emulator-5554',
'appium:deviceName': 'Android SDK build for x86_64',
'appium:platformVersion': '10.0',
'appium:orientation': 'PORTRAIT',
// `automationName` will be mandatory, see
// https://github.com/appium/appium/releases/tag/v1.13.0
'appium:automationName': 'Appium',
// The path to the app
'appium:app': join(process.cwd(), './apps/Android-NativeDemoApp-0.2.1.apk'),
// Read the reset strategies very well, they differ per platform, see
// http://appium.io/docs/en/writing-running-appium/other/reset-strategies/
'appium:noReset': true,
'appium:newCommandTimeout': 240,
},
];
exports.config = config;
3. Étapes
D'abord, j'ai ouvert Android émulateur et démarrez le serveur d'appui:
Ensuite, j'utilise la commande pour exécuter les tests npm run Android.app
. Après cela, les cas de test sont exécutés en arrière-plan, mais rien ne se passe dans l'émulateur et dans le terminal, je vois le message [HTTP] No route found for /session
Ma question est la suivante: Qu'est-ce qui doit faire attention afin de résoudre ce problème? Parce que je ne sais pas quoi regarder et comment configurer la configuration correctement. Merci!
N'exécutez pas d'appium serveur seul.
utilisez directement la commande webDriver pour exécuter les tests.
Exemple pour Android: npm run Android.app
Ah, je l'ai résolu. Je ne sais pas pourquoi, mais cela fonctionne avec une installation locale d'Appium NPM.