Ejemplo n.º 1
0
class RunTest(object):
    """这是RunTest"""
    def __init__(self):
        self.run_method = RunMethod()
        self.data = GetData()
        self.common_util = CommonUtil()
        self.send_email = SendMail()

    def go_on_run(self):
        pass_list = []
        fail_list = []
        rows_count = self.data.get_case_lines()
        for i in range(1, rows_count):
            res = None
            url = self.data.get_request_url(i)
            method = self.data.get_request_method(i)
            is_run = self.data.get_is_run(i)
            data = self.data.get_request_data_by_json(i)
            header = self.data.get_header(i)
            expect_result = self.data.get_expect_result(i)
            if is_run == "yes":
                res = self.run_method.run_main(method, url, data, header)
                if self.common_util.is_contain(expect_result, res):
                    print("用例{}测试通过".format(i))
                    pass_list.append(i)
                    self.data.write_actual_result(i, 'PASS')
                else:
                    print("用例{}测试失败".format(i))
                    fail_list.append(i)
                    self.data.write_actual_result(i, res)
                print(res)
        print("=============================")
        print("{}通过".format(len(pass_list)))
        print("{}失败".format(len(fail_list)))
        self.send_email.send_main(pass_list, fail_list)
Ejemplo n.º 2
0
class RunMain:
    #实例化一些基本的工具个data
    def __init__(self):
        self.opera_excel = OperationExcel()
        self.data = GetData()
        self.run_method = RunMethod()
        self.comm_util = CommUtil()
        self.send_mail = SendMail()

    #主函数运行入口
    def go_on_run(self):
        pass_count = 0
        fail_count = 0
        #获取数据行数
        rows_count = self.opera_excel.get_rows()
        #循环数据,并取值进行post或get请求,并获取结果
        for i in range(1, rows_count):
            is_run = self.data.is_run(i)
            # print(expact_result)
            if is_run:
                url = self.data.request_url(i)
                request_data = self.data.get_method_data_depend(i)
                # print(request_data)
                cookies = self.data.get_cookies(i)
                request_way = self.data.get_method_way(i)
                case_depend = self.data.get_case_depend_data(i)
                # print(case_depend)
                expact_result = self.data.expact_result(i)
                request_data_depend = self.data.get_method_data(i)
                #查看是否有数据依赖
                if case_depend != '':
                    data_depend = DataDepend()
                    response_depend = data_depend.get_depend_data(
                        i, case_depend, 0)
                    request_data[request_data_depend] = response_depend

                #判断是否需要写入或读取cookie
                if cookies == 'write':
                    cookie_data = OperationCookie().get_cookie(
                        request_way, url, request_data)
                    OperationJson().write_json('../datas/cookie.json',
                                               cookie_data)
                elif cookies == 'yes':
                    cookie_data = OperationJson().get_cookie_data(
                        '../datas/cookies.json')

                res = self.run_method.run_main(request_way, url, request_data)
                result = self.comm_util.comm_util(str(res['code']),
                                                  expact_result)
                if result:
                    self.data.write_data(i, 'Pass')
                    pass_count += 1
                else:
                    self.data.write_data(i, 'Fail')
                    fail_count += 1
        self.send_mail.send_main(pass_count, fail_count)
Ejemplo n.º 3
0
 def send_result_mail(self, report_file=None):
     c = Count()
     count_tuple = c.count()
     count = str(int(count_tuple[0]) + int(count_tuple[1]))
     content = settings.EMAIL_CONTENT.format(
         count, count_tuple[0], count_tuple[1], report_file,
         settings.DB_TYPE, settings.DB_HOST, settings.DB_USER,
         settings.DB_PASSWD, settings.DB_NAME, settings.TABLE_NAME)
     s = SendMail()
     sub = settings.EMAIL_SUB.format(time.strftime("%Y-%m-%d %H:%M:%S"))
     s.send_mail(settings.EMAIL_RECEIVER, sub, content)
Ejemplo n.º 4
0
    def __init__(self):
        with open("./sheet_id.conf","rb") as f:
            conf_info=eval(f.read())
        sheet_id=conf_info["sheet_id"]

        self.data=Get_data(sheet_id=sheet_id)

        self.run=RunMain()
        self.com_utl=CommonUtil()
        self.send=SendMail()
Ejemplo n.º 5
0
    def send_mail(self,filename=None):
        op = OperaDB()
        se = SendMail()

        result_list = op.get_all("select result from `case`;")
        result_list1 = [[value for key,value in d.items()][0] for d in result_list]
        pass_count = 0.0
        fail_count = 0.0
        for i in result_list1:
            if i == "pass":
                pass_count += 1
            else:
                fail_count += 1
        print(pass_count,fail_count)
        count_num = pass_count +fail_count
        result = "%.2f%%" % (pass_count/count_num*100)
        print(result)
        content = "本次自动化测试结果:通过"+ str(pass_count) + "个,失败" + str(fail_count) +"个,通过率为" \
           + str(result)
        se.send_mail(["*****@*****.**"],"自动化结果",content,filename)
Ejemplo n.º 6
0
    def sendTestReport(self, app):
        """
        发送邮件,测试报告
        :param app:
        :return:
        """
        print("sendTestReport")

        # 加载全部测试用例
        results = self.loadAllCaseByApp(app)
        title = "sea接口自动化测试报告"
        content = """
        <html><body>
            <h4>{0} 接口测试报告:</h4>
            <table border="1">
            <tr>
              <th>编号</th>
              <th>模块</th>
              <th>标题</th>
              <th>是否通过</th>
              <th>备注</th>
              <th>响应</th>
            </tr>
            {1}
            </table></body></html>  
        """
        template = ""
        for case in results:
            template += "<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td><td>{4}</td><td>{5}</td></tr>".format(
                case['id'], case['module'], case['title'], case['pass'], case['msg'], case['response']
            )

        current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        content = content.format(current_time, template)
        mail_host = self.loadConfigByAppAndKey(app, "mail_host")['dict_value']
        mail_sender = self.loadConfigByAppAndKey(app, "mail_sender")['dict_value']
        mail_auth_code = self.loadConfigByAppAndKey(app, "mail_auth_code")['dict_value']
        mail_receivers = self.loadConfigByAppAndKey(app, "mail_receivers")['dict_value'].split(",")
        mail = SendMail(mail_host)
        mail.send(title, content, mail_sender, mail_auth_code, mail_receivers)
Ejemplo n.º 7
0
	def run_test(self):
		sum_cases = self.test_datas.get_cases()
		print(sum_cases)
		pass_cases = []
		fail_cases = []
		for i in range(1, sum_cases):
			res = None
			url = self.test_datas.get_case_url(i)
			is_run = self.test_datas.get_case_is_run(i)
			data = self.test_datas.get_case_json_data(i)
			cookie = self.test_datas.get_case_cookie(i)
			method = self.test_datas.get_case_request_type(i)
			exp_result = self.test_datas.get_case_expect_result(i)
			depend_id = self.test_datas.get_case_is_depend(i)

			if is_run:
				if None != depend_id:
					depend_key = self.test_datas.get_case_depend_key(i)
					depend_field = self.test_datas.get_case_field_depend(i)

					depend_datas = GetDependData(depend_id)
					data_key = depend_datas.get_depend_data_key(depend_key)
					data[depend_field] = data_key
				#res = mock_demo_data(self.run.run_method, data, url, method, data)

				"""处理cookie信息"""
				if cookie.lower() == 'write':
					print(method, url, data)
					res = self.run.run_method(method, url, data)
					opera_cookie = OperationCookie(res)
					opera_cookie.write_cookie()
				elif cookie.lower() == 'yes':
					opera_cookie = OperationCookie()
					opera_cookie.get_json_cookie()
					res = self.run.run_method(method, url, data, cookie)
				else:
					res = self.run.run_method(method, url, data)

				cmp_res = CompareResult().cmp_data(exp_result, res)
				if cmp_res:
					self.write_data.write_case_actul_result(i, "PASS", res)
					pass_cases.append(i)
				else:
					self.write_data.write_case_actul_result(i, "FAIL", res)
					fail_cases.append(i)

		SendMail().send_mail(pass_cases, fail_cases)
Ejemplo n.º 8
0
 def __init__(self):
     self.data = GetData()
     self.run_method = RunMain()
     self.common = CommonUtil()
     self.sendMail = SendMail()
Ejemplo n.º 9
0
 def __init__(self):
     self.opera_excel = OperationExcel()
     self.data = GetData()
     self.run_method = RunMethod()
     self.comm_util = CommUtil()
     self.send_mail = SendMail()
Ejemplo n.º 10
0
 def __init__(self):
     self.run_method = RunMethod()
     self.data = GetData()
     self.common_util = CommonUtil()
     self.send_email = SendMail()