利用bash来获取当前电脑的环境变量,可以写一个.sh文件,里面获取当前环境,然后在调用python文件执行

 # -*- coding: utf-8 -*-

 import logging
import urllib
import sys
import json
import string
import os
import time
import getopt
import requests sys.path.append('../') from common.monitor_logging import *
from common.util import *
from common.nagios_status import *
from hongbao_api.baidu_api import *
from common.monitor_config import *
from common.monitor_testcase import *
from common.pinger import * def Usage():
print "exception" DEBUG_FLAG=True
ROOT_DIR='' def get_user_opt():
global DEBUG_FLAG, ROOT_DIR
if len(sys.argv) > 1:
try:
opts, args = getopt.getopt(sys.argv[1:], 'dr:h')
if len(opts) == 0:
return for opt, arg in opts:
if opt in ('-h', '--help'):
Usage()
sys.exit(3)
elif opt == '-d':
DEBUG_FLAG = True
elif opt == '-r':
ROOT_DIR = arg except getopt.GetoptError:
Usage()
sys.exit(-1) ''' '''
class ScoreAuctionDealsUrl():
def __init__(self, testcase_file):
self.config = MonitorConfig()
#获取需要解析的xml的testcase的name
self.testcase = MonitorTestcase(testcase_file)
#日志文件
self.logger = logging.getLogger('baidu') #打印返回值和退出
def print_result_and_exit(self, status, msg):
print msg
sys.exit(status)
#检查主机是否联网
def check_host_is_alive(self):
pinger = Pinger()
ret = pinger.check()
return ret #开始检测url
def test_all_category(self):
#if not self.check_host_is_alive():
# msg = 'Network is not availabe'
# return STATE_UNKNOWN, msg
testcase_name = 'baidu'
url=self.testcase.get_url(testcase_name)
self.logger.debug('testcase=%s' % testcase_name)
self.logger.info('url=%s' % url) #请求数据
deals=GetBaiduDeals(url)
#请求json获取返回的状态
status = deals.get_baidu()
print("status:%s"%status)
#一个个遍历:
json_data=deals.json_data
print(json_data) return STATE_WARNING, "aaaa" if status == 0:
msg0 = 'return status is 0'
return STATE_WARNING, msg0
elif status ==1:
msg1 = 'return status is 1'
return STATE_WARNING,msg1
elif status ==2:
msg2 = 'return status is 2'
return STATE_CRITICAL,msg2
else:
msg3='return status is 3'
return STATE_UNKNOWN,msg3 if __name__ == '__main__': #######################################################
get_user_opt()
print(DEBUG_FLAG)
print(ROOT_DIR)
#
if DEBUG_FLAG:
print 'DEBUG_FLAG is True'
log_console_flag = True
else:
print 'DEBUG_FLAG is False'
log_console_flag = False if ROOT_DIR:
log_file = ROOT_DIR + '/log/monitor_log.txt'
else:
log_file= os.getcwd() + '/../../log/monitor_log.txt'
log_level = logging.DEBUG
set_logging(log_file, log_level, log_console_flag) logger = logging.getLogger("hongbao")
print(logger)
#
########################################################
logger.info('start...')
testcase_file = '../../test/hongbao.xml'
print(testcase_file)
score_auction_deals_url = ScoreAuctionDealsUrl(testcase_file)
print(score_auction_deals_url)
status, msg = score_auction_deals_url.test_all_category()
print(status,msg)
#
status_str = get_status_str(status)
output_msg = '%s, %s' % (status_str, msg)
print output_msg
exit(status)
#!/bin/sh

_DEBUG=false

# input env
shell_dir=$(cd "$(dirname "$0")"; pwd)
source ${shell_dir}/set_env.sh _DEBUG ROOT_DIR="$(dirname ${shell_dir})"
_log "ROOR_DIR=${ROOT_DIR}" #LOG_FILE=${ROOT_DIR}/log/report.log
#_log "LOG FILE=${LOG_FILE}" cd ${ROOT_DIR}/src/hongbao python baidu_url.py -r ${ROOT_DIR} $*
exit $?

利用python编写不同环境下都能运行的测试脚本的更多相关文章

  1. Python 利用Python编写简单网络爬虫实例3

    利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://bbs.51testing. ...

  2. Python 利用Python编写简单网络爬虫实例2

    利用Python编写简单网络爬虫实例2 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://www.51testing. ...

  3. 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!

    本文主要展示的是通过使用python和PyInstaller来构建恶意软件的一些poc. 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!众所周知的,恶意软件如果影响到了他人的生 ...

  4. linux环境下使用jmeter进行压力测试

    linux环境下使用jmeter进行压力测试 linux环境下使用就meter进行压力测试: linux环境部署: 在Linux服务器先安装jdk: 2.以jdk-8u172-linux-x64.ta ...

  5. Windows环境下Oracle数据库的自动备份脚本

    批处理文件(.bat) @echo off echo ================================================ echo  Windows环境下Oracle数据 ...

  6. ubuntu16.04 ROS环境下配置和运行SVO

    ubuntu16.04 ROS环境下配置和运行SVO https://blog.csdn.net/nnUyi/article/details/78005552

  7. Windows环境下Oracle数据库的自动备份脚本自动删除30天前的备份

    @echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo ...

  8. [Python学习] Linux环境下的Python配置,必备库的安装配置

    1.默认Python安装情况 一般情况,Linux会预装Python的,版本较低,比如Ubuntu15的系统一般预装的是Python2.7.10. 使用命令:which python可以查看当前的py ...

  9. 利用Python编写网络爬虫下载文章

    #coding: utf-8 #title..href... str0='blabla<a title="<论电影的七个元素>——关于我对电影的一些看法以及<后会无期 ...

随机推荐

  1. django中使用FastDFS分布式文件系统接口代码实现文件上传、下载、更新、删除

    运维使用docker部署好之后FastDFS分布式文件系统之后,提供给我接口如下: fastdfs tracker 192.168.1.216 192.168.1.217 storage 192.16 ...

  2. 用Python实现的数据结构与算法:基本搜索

    一.顺序搜索 顺序搜索 是最简单直观的搜索方法:从列表开头到末尾,逐个比较待搜索项与列表中的项,直到找到目标项(搜索成功)或者 超出搜索范围 (搜索失败). 根据列表中的项是否按顺序排列,可以将列表分 ...

  3. Java之IO流(字节流,字符流)

    IO流和Properties IO流 IO流是指计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.它对于任何计算机系统都非常关键, 因而所有 I/O 的主体实际上是内置在操作系统中的.单独的 ...

  4. > Manifest merger failed with multiple errors, see logs -- Android Studio问题汇总

    FAQ:> Manifest merger failed with multiple errors, see logs 解决: 此问题产生原因大概有三个 # 第一,清单文件有错,这种错不会在编译 ...

  5. 解题:PA 2014 Bohater

    题面 我们把怪分成两类,打完了了能回血的和打完了不能回血的,然后分开打. 对于能回血的,我们先打攻击力低的,因为如果先打一个攻击力高的显然不一定能直接打过,所以先打一些攻击力低的回回血. 对于不能回血 ...

  6. MVC使用jQuery从视图向控制器传递Model的2种方法

    http://blog.csdn.net/make1828/article/details/29846003 using System.ComponentModel.DataAnnotations; ...

  7. Python Opencv 色彩平衡

    在平衡良好的照片中,最亮的颜色应该是白色和最暗的黑色. 因此,我们可以通过缩放每个R,G和B通道的直方图来移除图像中的色偏,使得它们跨越完整的0-255比例 网上只有C的代码 修改为Python代码 ...

  8. GeoDa计算全局Moran‘I

    GeoDa计算全局Moran‘I 1.导入包含数据的.shp文件 2.创建权重矩阵,点击Weight Manger,再点击Create, weights file ID variable(其中包含的数 ...

  9. google analysis教程

    sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...

  10. oracle表结构和数据导出时的一些勾选项说明

    使用pl/sql developer导出oracle数据库的表结构和表数据时,有一些勾选项供用户选择,需要用户根据实际情况进行勾选或取消. 导出方法如下:一.只导出表结构1.使用pl/sql deve ...