azure-linux-automation/remote-scripts/E2E-SIEGE-TEST.py

73 строки
2.9 KiB
Python

#!/usr/bin/python
import re
import time
import imp
import sys
import argparse
import os
import linecache
from azuremodules import *
parser = argparse.ArgumentParser()
parser.add_argument('-u', '--user', help='specifies user to login', required=True, type= str )
parser.add_argument('-p', '--password', help='specifies which password should be used to login', required=True, type= str)
parser.add_argument('-l', '--url', help='Datrader scenario url for siege test', required=True, type= str )
parser.add_argument('-t', '--siegetime', help='time for siege test', required=True, type= str )
parser.add_argument('-n', '--numofusers', help='number of users for siege test', required=True, type= str )
args = parser.parse_args()
vm_username = args.user
vm_password = args.password
daytrader_scenario_url = args.url
siegetime= args.siegetime
numofusers = args.numofusers
current_distro="unknown"
distro_version="unknown"
def EndOfTheScript():
print FileGetContents("/home/"+vm_username+"/Runtime.log")
exit()
def CollectLogs():
ExecMultiCmdsLocalSudo(["mkdir logs","cp -f /tmp/*.log logs/","cp -f *.txt logs/","tar -czvf logs.tar.gz logs/"])
def SiegeTest():
if (current_distro == "centos" or current_distro == "rhel" or current_distro == "oracle" or current_distro == "ol"):
ExecMultiCmdsLocalSudo(["yum update -y ","yum install -y tar wget gcc make"])
Run("echo '"+vm_password+"' | sudo -S rpm -ivh siege*.rpm")
elif(current_distro == "openSUSE" or current_distro == "sles"):
ExecMultiCmdsLocalSudo(["zypper update -y ","zypper install -y gcc make"])
Run("echo '"+vm_password+"' | sudo -S rpm -ivh siege*.rpm")
elif(current_distro == "ubuntu"):
ExecMultiCmdsLocalSudo(["apt-get update -y","apt-get install -y gcc make siege"])
siegeinfo = Run("echo '"+vm_password+"' | sudo -S siege -V 2>&1")
if((siegeinfo.rfind("SIEGE ") != -1) and (siegeinfo.rfind("Copyright ") != -1)):
RunLog.info("Siege tool Available ..")
else:
Run("echo '"+vm_password+"' | sudo -S dpkg -i siege*.deb")
else:
RunLog.error( "\ndetected distro not in the list and for more details check logs...")
siegeinfo = Run("echo '"+vm_password+"' | sudo -S siege -V 2>&1")
if((siegeinfo.rfind("SIEGE ") != -1) and (siegeinfo.rfind("Copyright ") != -1)):
RunLog.info("Siege Setup Completed Successfully")
#Siege test start here..
command = "siege "+ daytrader_scenario_url +" -t"+siegetime+" -c"+numofusers+" > SiegeConsoleOutput.txt 2>&1"
RunLog.info( "fcmd:'" +command+"'")
Run("echo SIEGE_TEST_STARTED > siegeteststatus.txt")
Run(command)
RunLog.info("siege fininshed")
RunLog.info("siege fininshed >> siegeteststatus.txt")
else:
RunLog.info("Siege Setup Failed")
EndOfTheScript()
#Test start here
[current_distro, distro_version] = DetectDistro()
SiegeTest()
CollectLogs()
EndOfTheScript()