2017-08-30 1 views
0

J'ai une série de tests qui utilisent le pilote web selenium pour firefox. J'ai des scripts que j'ai écrits que je voudrais vérifier l'environnement actuel dans lequel il est exécuté pour basculer entre localhost et un serveur distant. Quelle est la meilleure façon d'accomplir cela? J'utilise un environnement Windows pour tester localement, alors que le serveur distant est Linux. Leur variable système je peux vérifier contre qui peut effectuer un échange de:Script Python qui utilise le sélénium pour passer de l'environnement local à l'environnement distant dans lequel il est exécuté

http: // localhost : 4444/wd/concentrateur à http: // -serveur distant: 4444/wd/hub

Cela améliorerait mon flux de travail, ce qui me permet de ne pas m'inquiéter de changer cette variable à chaque fois que je m'engage pour et depuis le contrôle de source. Merci pour les suggestions!

Répondre

0

Il y a plusieurs façons de le faire, par exemple, vous pouvez vérifier le nom d'hôte de votre serveur et modifier l'URL suivant:

import socket 
server_hostname = 'MyServer' 

if socket.gethostname() == server_hostname: 
    #Remote environment 
else: 
    #Local environment  
+0

Malheureusement, ce n'est pas seulement moi qui travaille là-dessus. Toutefois, si le nom d'hôte distant ne change pas, je pourrais utiliser une logique similaire pour l'obtenir pour vérifier le nom d'hôte distant, et si ce n'est pas le cas, je peux par défaut localhost. Son à peu près juste? – mklemos

+0

Oui, vous avez raison. Il est beaucoup plus logique d'utiliser le nom d'hôte du serveur. J'ai mis à jour la réponse et j'ai corrigé une faute de frappe aussi;) – Isma

+0

Un grand merci de m'avoir aidé avec ça. – mklemos

0

Une autre façon serait d'avoir une variable d'environnement système que vous pouvez pointer sur le serveur distant par défaut, mais s'il est défini, vous pouvez pointer vers un autre serveur (par exemple localhost).

Ainsi, sur votre environnement local définissent un système variable d'environnement « MY_SERVER_HOST », puis dans l'utilisation de code:

my_server_host = os.getenv("MY_SERVER_HOST", "remote-server") 

lorsqu'il est exécuté dans un environnement qui ne dispose pas de l'ensemble env, il utilisera ce serveur distant.

Cela vous permet de remplacer cela n'importe où. PS: si vous avez un fichier de propriétés quelque part, ce serait un bon endroit pour stocker la valeur par défaut du serveur distant. PPS: si vous avez plusieurs serveurs distants possibles, vous pouvez inverser cette approche et par défaut localhost, puis utiliser env var sur n'importe quel autre ordinateur pour spécifier l'hôte cible.