Python 通过配置文件 读取参数进行

#-*-coding:utf-8-*-
#测试用例配置参数
#XXXXX_Uitest->baseinfo->__init__.py

base_url = "http://XXXXxxxxx.com"
undirect_username = "XXXX"
undirect_password = "XXXXX"
direct_username = XXXXX"
direct_password = "xxxxxx"

#发送邮件配置参数
Smtp_Server = ‘smtp.mxhichina.com‘
Smtp_Sender = ‘[email protected]。com‘
Smtp_Sender_Password = ‘XXXXXXX‘
Smtp_Receiver = [‘[email protected]‘,‘[email protected]‘]

#测试用例及报告路径配置参数
test_dir = ‘./test_case‘
test_report = ‘./test_report/‘
#测试用例,测试代码#test_cart.py

import unittest
import os

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

class TestCart(unittest.TestCase):

    def setUp(self):
        print(‘setup‘)

        self.url = ‘http://www.XXX.mm‘
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(5)
        self.driver.get(self.url)
        self.driver.maximize_window()
        print("open browser")
        #return self.driver

    def get_Info(self):
        filePath = os.path.join(os.getcwd(),‘user_info‘)
        filename = filePath + ‘\\user_info.txt‘
        print(filename)
        fo = open(filename, ‘r‘)
        lines = fo.readlines()
        for data in lines:
            name,pwd = data.split(‘,‘)
        print(name, pwd)
        return name,pwd

    def test_to_login(self):
        ‘‘‘验证是否登陆‘‘‘
        name,pwd = self.get_Info()
        time.sleep(5)
        print(name,pwd)
        self.driver.implicitly_wait(5)
        self.driver.find_element_by_id(‘new-username‘).clear()
        self.driver.find_element_by_id(‘new-username‘).send_keys(name)
        self.driver.find_element_by_id(‘new-password‘).clear()
        self.driver.find_element_by_id(‘new-password‘).send_keys(pwd)
        self.driver.implicitly_wait(5)
        #回车登陆,因为登陆按钮不好定位
        self.driver.find_element_by_xpath("html/body/div[9]/div[3]/div[1]/div[1]/div[4]/span").send_keys(Keys.ENTER)
        self.driver.implicitly_wait(10)
        login_test = self.driver.find_element_by_xpath(".//*[@id=‘loginOut‘]").text
        self.assertEqual(login_test, ‘[退出]‘)

    def tearDown(self):
        print("tearDown")
        time.sleep(5)
        print("close browser")
        self.driver.quit()

if __name__ == ‘__main__‘:
    unittest.main()
#runtest.py

import smtplib
import unittest
import time
import xlrd
import os
from HTMLTestRunner import HTMLTestRunner
from email.header import Header
from email.mime.text import MIMEText#导入baseinfo
import baseinfo
from email.mime.multipart import MIMEMultipart

def get_sender():

    filePath =  os.path.join(os.getcwd(),‘user_info‘)
    print("get_sender")
    print(filePath)
    fileName = filePath + ‘\Mail_info.xlsx‘
    print(fileName)
    readExcel = xlrd.open_workbook(fileName)
    sender = readExcel.sheet_by_name(‘sender‘)
    get_sender = sender.row_values(1)
    #print(get_sender)

    return get_sender

def get_Receiver():

    filePath =  os.path.join(os.getcwd(),‘user_info‘)
    fileName = filePath + ‘\Mail_info.xlsx‘
    print("get_Receiver()")
    print(fileName)
    readExcel = xlrd.open_workbook(fileName)
    receiver_sheet = readExcel.sheet_by_name(‘receiver‘)
    receiver_temp = receiver_sheet.col_values(0)
    getReceiver = receiver_temp[1:]
    print(getReceiver)
    print(type(getReceiver))
    return getReceiver

def get_NewReport(testreport):
    dirs = os.listdir(testreport)
    dirs.sort()
    newreportname = dirs[-1]
    print(‘The new report name: {0}‘.format(newreportname))
    file_new = os.path.join(testreport, newreportname)
    print(file_new)
    return file_new

def send_Mail(file_new):
    f = open(file_new, ‘rb‘)
    # 读取测试报告正文
    mail_body = f.read()
    f.close()

    try:
     #通过 baseinfo 引用 __init__ 初始化的参数值
        smtp = smtplib.SMTP(baseinfo.Smtp_Server, 25)
        sender = baseinfo.Smtp_Sender
        password = baseinfo.Smtp_Sender_Password
        receiver = baseinfo.Smtp_Receiver
        smtp.login(sender, password)

        msg = MIMEMultipart()
        # 编写html类型的邮件正文,MIMEtext()用于定义邮件正文
        # 发送正文

        text = MIMEText(mail_body, ‘html‘, ‘utf-8‘)
        text[‘Subject‘] = Header(‘自动化测试报告‘, ‘utf-8‘)
        msg.attach(text)

        # 发送附件
        # Header()用于定义邮件标题
        msg[‘Subject‘] = Header(‘自动化测试报告‘, ‘utf-8‘)
        msg_file = MIMEText(mail_body, ‘html‘, ‘utf-8‘)
        msg_file[‘Content-Type‘] = ‘application/octet-stream‘
        msg_file["Content-Disposition"] = ‘attachment; filename="TestReport.html"‘
        msg.attach(msg_file)
        #定义发件人,如果不写,发件人为空
        msg[‘From‘] = sender
        #定义收件人,如果不写,收件人为空
        msg[‘To‘] = ",".join(receiver)

        tmp = smtp.sendmail(sender, receiver, msg.as_string())
        print(receiver)

        print(tmp)
        smtp.quit()
        return True
    except smtplib.SMTPException as e:
        print(str(e))
        return False

if __name__ == ‘__main__‘:
    test_dir = os.path.join(os.getcwd(),‘test_case‘)
    print(test_dir)
    report_dir = os.path.join(os.getcwd(),‘report‘)
    test_discover = unittest.defaultTestLoader.discover(test_dir,pattern=‘test*.py‘)
    print("test_discover")
    now = time.strftime("%Y-%m-%d-%H_%M_%S")
    filename = report_dir+‘/result-‘+now+‘.html‘
    fp = open(filename, ‘wb‘)
    runner = HTMLTestRunner(stream = fp, title = ‘UI自动化测试报告‘, description = ‘用例执行情况‘)
    #runner = unittest.TextTestRunner()
    runner.run(test_discover)
    fp.close()

    new_report = get_NewReport(report_dir)
    mail = send_Mail(new_report)
    if mail:
        print("发送成功!")
    else:
        print("发送失败!")
时间: 2024-11-06 20:53:57

Python 通过配置文件 读取参数进行的相关文章

python的配置文件读取,日志文件写入,批量写入mysql(python2.7,win7)

# -*- coding: utf-8 -*-import log_configimport ConfigParserimport pymysqllogger = log_config.getlogger('getdataabdupdata', 'getdataabdupdata.log')conf = ConfigParser.ConfigParser()conf.read("mysql.conf")user = conf.get("mysql", "u

python的ConfigParser读取设置配置文件

python 读写配置文件在实际应用中具有十分强大的功能,在实际的操作中也有相当简捷的操作方案,以下的文章就是对python 读写配置文件的具体方案的介绍,望你浏览完下面的文章会有所收获. python 读写配置文件ConfigParser模块是python自带的读取配置文件的模块.通过他可以方便的读取配置文件. 这篇文章简单介绍一下python 读写配置文件的方法. 配置文件.顾名思议就是存放配置的文件.下面是个例子 点击(此处)折叠或打开 [info] age = 21 name = che

python之函数的参数

定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解. Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码. 位置参数 我们先写一个计算x2的函数: def power(x): return x * x 对于powe

python函数 - 函数的参数

http://blog.csdn.net/pipisorry/article/details/39123103 self参数 self在定义时需要定义,但是在调用时会自动传入. self的名字并不是规定死的,但是最好还是按照约定是用self.self不必非写成self,可以是任意字符. self总是指调用时的类的实例.self代表类的实例,而非类. 在继承时,传入的是哪个实例,就是那个传入的实例,而不是指定义了self的类的实例. 在描述符类中,self指的是描述符类的实例. [一篇文章让你彻底

【Spring源码分析】配置文件读取流程

前言 Spring配置文件读取流程本来是和http://www.cnblogs.com/xrq730/p/6285358.html一文放在一起的,这两天在看Spring自定义标签的时候,感觉对Spring配置文件读取流程还是研究得不够,因此将Spring配置文件读取流程部分从之前的文章拆出来单独成为一文. 为了看一下Spring配置文件加载流程,先定义一个bean.xml: 1 <?xml version="1.0" encoding="UTF-8"?>

python 读配置文件

python读conf配置文件--ConfigParser python读写配置文件还是比较方便得. 配置文件的格式是: []包含的叫section,    section 下有option=value这样的键值 配置文件   test.conf [section1] name = tank age = 28 [section2] ip = 192.168.1.1 port = 8080 1) 基本的读取配置文件     -read(filename) 直接读取ini文件内容     -sect

Linux下配置文件读取操作流程及其C代码实现

一.概述 Linux具有免费.可靠.安全.稳定.多平台等特点,因此深受广大程序员的欢迎. 为了体现软件产品的灵活性,可添加配置文件存放某些重要的参数,在部署的时候根据实际的安装环境对每个配置项的值进行设置.这就要求程序能够准确读取到各个配置项的值. 本文详细介绍了Linux下配置文件的读取方法及读取操作的C代码实现,为相关的软件开发工作的开展提供了有益的参考. 二.配置文件介绍 为了便于程序处理,对配置文件的命名及内容格式有一些约定,具体如下: 第一,配置文件的后缀为ini,如本文中使用到的配置

python学习——函数的参数

定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解. Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码. 位置参数 我们先写一个计算x2的函数: def power(x): return x * x 对于powe

Samba配置文件常用参数详解

Samba配置文件常用参数详解 Samba的主配置文件叫smb.conf,默认在/etc/samba/目录下. smb.conf含有多个段,每个段由段名开始,直到下个段名.每个段名放在方括号中间.每段的参数的格式是:名称=指.配置文件中一行一个段名和参数,段名和参数名不分大小写. 除了[global]段外,所有的段都可以看作是一个共享资源.段名是该共享资源的名字,段里的参数是该共享资源的属性. Samba安装好后,使用testparm命令可以测试smb.conf配置是否正确.使用testparm