Appium 服务设置:Start Appium Server Appium 服务关闭:Stop Appium Server 主要目的:项目开始是,自动在后台设置并启动 Appium 服务;项目结束时,关闭 Appium 进程 说明:如果要实现持续集成,需要自动后台启动 Appium 服务
一、 在项目的 Setup_Pre_Condition 中调用 keyword:Start Appium Server
二、Start Appium Server:自动在后台设置并启动 Appium 服务
A. 检测 Appium 服务是否开启:appium_server_status() B. 如果未开启,后台启动 Appium 服务 C. 参数 -U xxxx:xxxx 是 Device Name
三、关于 Appium 服务配置:查看 #Appium Setup
四、Common_Suite_Teardown:设置测试项目结束时,关闭 Appium 服务
五、导入源代码:appium_server.py
# -*- coding: utf-8 -*- # Author: Allan import os import time import sys class appium_server(object): """docstring for appium server""" def __init__(self): self.__address = os.getenv('G_APPIUM_HOST_ADDRESS', '127.0.0.1') self.__port = os.getenv('G_APPIUM_HOST_PORT', '4723') self.__device_name = os.getenv('U_APPIUM_DEVICE_NAME') self.__platform_name = os.getenv('G_APPIUM_PLATFORM_NAME', 'Android') self.__platform_ver = os.getenv('G_APPIUM_PLATFORM_VERSION') self.__auto_name = os.getenv('G_APPIUM_AUTO_NAME', 'Appium') reset = os.getenv('G_APPIUM_REINSTALL_RESET', 'False') if reset.lower() == 'false': self.__reset = '--no-reset' elif reset.lower()== 'true': self.__reset = '--full-reset' def start_appium_server(self): """ Start Appium Server. Examples: | Start Appium Server | """ reload(sys) sys.setdefaultencoding('utf8') start_cmd = 'start /b appium -a {} -p {} -U {} --platform-name {} --platform-version {} --automation-name {} {} --command-timeout 600'\ .format(self.__address, self.__port, self.__device_name, self.__platform_name, self.__platform_ver, self.__auto_name, self.__reset) try: appium_server_status = self.appium_server_status() if appium_server_status.lower() == 'stop' or appium_server_status.lower() == 'warn': print start_cmd status = os.system(start_cmd) if status == 0: print 'Pass! Start Appium Server.' else: self.__raiseError('Fail! Could NOT start Appium server.') else: print 'Appium Server is already started. PID: {}'.format(appium_server_status) except Exception as e: print str(e) def stop_appium_server(self): """ Stop Appium Server. Examples: | Stop Appium Server | """ try: appium_server_status = self.appium_server_status() if appium_server_status.lower() == 'stop': print 'Appium Server is already stopped.' elif appium_server_status.lower() == 'warn': self.__raiseError('Warning! Appium Server Error.') else: pid = appium_server_status status = os.system('taskkill /f /pid {}'.format(pid)) if status == 0: print 'Pass! Stopped Appium Server. PID: {}'.format(pid) else: self.__raiseError('Fail! Could NOT Stopp Appium Server.') except Exception as e: print str(e) def appium_server_status(self): """ Check Appium Server Status and return PID if it is running. Examples: | ${status} | Appium Server Status | """ cmd = 'netstat -nao | findstr {}'.format(self.__port) try: text = os.popen(cmd) content = text.read().strip() print '###' print 'Appium Server Info: ', content print '###' if content == '': return 'stop' elif self.__port in content: pid = content.split()[4] return pid else: return 'warn' except Exception as e: print str(e)