Exemple #1
0
	def __init__(self, test_dir="", title=None, description=None):

		if test_dir == "":
			self.test_dir = current_path(r"test_case")
		else:
			self.test_dir = current_path(test_dir)
		self.discover = unittest.defaultTestLoader.discover(self.test_dir, pattern='test*.py')
		self.title = title
		self.description = description
		# 定义报告存放的路径
		self.path = current_path(r"\result\report", mkdir=True)
Exemple #2
0
 def __init__(self):
     self.log = Log().log()
     # 初始化配置文件,
     cfg = Config().testcase()
     path = cfg["path"]
     self.path = current_path(path)
     file = self.path + "测试用例.xlsx"
     self.log.debug("测试用例文件路径: %s", file)
     try:
         self.excel = xlrd.open_workbook(file, "rb")
     except FileNotFoundError as f:
         self.log.error(f)
     self.case_title = cfg["cast_title"].strip(",").split(',')
class TestICCardCheckIn(BaseTest):
    """校验IC卡的有效性"""
    file = current_path("test_case_data") + r"ICCardCheckIn.yml"

    def setUp(self):
        super().setUp()
        self.resource = "/ICCardCheckIn"
        self.method = "post"
        self.s.set(url=self.test_url,
                   resource=self.resource,
                   method=self.method)

    @file_data(file)
    def test_ICCardCheckIn(self, data, result):
        """输入{data}"""
        r = self.s.request(json=data)
        self.log.info(r.text)
        self.assertEqual(result, r.text, "返回结果与预期不一致")
class SelectOperation(BaseTest):

    file = current_path("test_case_data") + r"SelectOperation.yml"

    def setUp(self):
        super().setUp()
        # 前置条件
        self.s.set(self.test_url, "/ICCardCheckIn", "post")
        self.s.request(json={"cardNo": 1001})

        self.resource = "/SelectOperation"
        self.method = "post"
        self.log.info(self.method)
        self.s.set(self.test_url, self.resource, self.method)

    @file_data(file)
    def test_SelectOperation(self, data, result):
        """输入{data}"""
        r = self.s.request(json=data)
        self.log.info(r.text)
        self.assertEqual(result, r.text, "返回结果与预期不一致")
Exemple #5
0
    # 附件
    if mail_file is not None and os.path.exists(mail_file):
        with open(mail_file, 'rb') as f:
            msg_file = MIMEText(f.read(), 'base64', 'utf-8')
            msg_file['Content-Type'] = 'application/octet-stream'
            msg_file[
                'Content-Disposition'] = 'attachment; filename=test_report.html'
            msg.attach(msg_file)

    try:
        # 发送
        __log.info("sending email...")
        smtp = smtplib.SMTP_SSL(smtp_server, 465)
        # 1.连接邮件服务器
        # smtp.connect()
        # 2.登录
        smtp.login(user, password)
        # 3.发送邮件
        __log.debug(receiver_list)
        smtp.sendmail(sender, receiver_list, msg.as_string())
        # 4.退出
        smtp.quit()
        __log.info("send email sessful")
    except Exception as e:
        __log.error(e)


if __name__ == "__main__":
    f = current_path() + '/test_case_data/test.png'
    sendemail("邮件主题", "邮件正文")
Exemple #6
0
class Logging(object):
    """
	日志输出配置
	"""
    # logging 配置文件
    __config = Config().logging()
    __output_format = __config["output_format"]
    __dir = __config["dir"]
    __log_path = current_path(__dir)
    __handler = __config["handler"]
    __console = __config["console"]
    __handler_name = __config["handler_level"]
    __console_name = __config["console_level"]
    _nameToLevel = {
        'CRITICAL': logging.CRITICAL,
        'FATAL': logging.FATAL,
        'ERROR': logging.ERROR,
        'WARN': logging.WARNING,
        'WARNING': logging.WARNING,
        'INFO': logging.INFO,
        'DEBUG': logging.DEBUG,
        'NOTSET': logging.NOTSET,
    }
    __handler_level = _nameToLevel[__handler_name]
    __console_level = _nameToLevel[__console_name]
    __logger = None

    def __init__(self):
        # 创建日志文件夹
        if not os.path.exists(self.__log_path):
            os.mkdir(self.__log_path)

        # 初始化
        self.__logger = logging.getLogger(__name__)
        self.__logger.setLevel(logging.DEBUG)

        # 设置log文件输出 级别.路径.格式化
        if self.__handler == "1":
            # 创建,路径
            handler = logging.FileHandler(filename=self.__log_path +
                                          timestamp() + "--" +
                                          self.__handler_name + ".log",
                                          encoding='utf-8')
            # 级别
            handler.setLevel(self.__handler_level)
            # 格式化
            formatter = logging.Formatter(self.__output_format)
            handler.setFormatter(formatter)
            # 添加
            self.__logger.addHandler(handler)

        # 设置控制台日志 级别格式化
        if self.__console == "1":
            # 创建
            console = logging.StreamHandler()
            # 级别
            console.setLevel(self.__console_level)
            # 添加
            self.__logger.addHandler(console)

    def debug(self, msg, *args, **kwargs):
        """debug级别日志"""
        self.__logger.debug(msg, *args, **kwargs)

    def info(self, msg, *args, **kwargs):
        """info级别日志"""
        self.__logger.info(msg, *args, **kwargs)

    def warning(self, msg, *args, **kwargs):
        """warning级别日志"""
        self.__logger.warning(msg, *args, **kwargs)

    def error(self, msg, *args, **kwargs):
        """error级别日志"""
        self.__logger.error(msg, *args, **kwargs)

    def get_logger(self):
        """
		get logger
		:return:
		"""
        return self.__logger
Exemple #7
0
 def __init__(self):
     # 本地文件夹路径
     self.dir_path = current_path("config")
     if not os.path.exists(self.dir_path):
         os.mkdir(self.dir_path)
Exemple #8
0
                self.log.debug(x)
                cases = []
                suit = {}
                casetitle = {}
                case = {}
            # sleep(0.001)
        return suits


if __name__ == "__main__":
    suits = Case().import_list()
    x = 0
    y = 0
    title = ["用例编号", "步骤名称", "输入", "预期输出", "实际输出", "是否通过", "备注"]

    xlsx = xlsxwriter.Workbook(current_path("test_case_data") + "case.xlsx")
    sheet = xlsx.add_worksheet("case")
    while y < len(title):
        sheet.write(0, y, title[y])
        y += 1

    for suit in suits:
        # pprint(suit["casetitle"])

        for case in suit["cases"]:
            x += 1
            sheet.write(x, 0, case["用例编号"])
            sheet.write(x, 1, case["步骤名称"])
            sheet.write(x, 2, case["输入"])
            sheet.write(x, 3, case["预期输出"])
            sheet.write(x, 4, case["实际输出"])