Commit f1f467ef3c5ac9dcb72de6a31b0684ca4e0c5acb
1 parent
745ca6b7
更新
Showing
1 changed file
with
84 additions
and
0 deletions
main.py
0 → 100644
1 | +# -*- coding: utf-8 -*- | |
2 | + | |
3 | +# @Time : 2021/7/16 15:11 | |
4 | +# @Author : Ljq | |
5 | +# @File : main.py | |
6 | +# @Software: PyCharm | |
7 | + | |
8 | +""" | |
9 | + | |
10 | +""" | |
11 | + | |
12 | +import os, time | |
13 | +import sys | |
14 | +import unittest | |
15 | +import re | |
16 | +import HTMLTestRunner_cn | |
17 | +import commons.ConfigDB as db | |
18 | +from discover import DiscoveringTestLoader | |
19 | +from commons import SendEmail as em | |
20 | +from commons import common as com | |
21 | +from commons.MySession import my | |
22 | + | |
23 | + | |
24 | +def Create_Testcase_suite(): | |
25 | + '''创建测试套件''' | |
26 | + testunit = unittest.TestSuite() | |
27 | + test_Loader = DiscoveringTestLoader() | |
28 | + discover = test_Loader.discover("./testCase", pattern='test_*.py', top_level_dir=None) | |
29 | + print(discover) | |
30 | + for test_suite in discover: | |
31 | + testunit.addTests(test_suite) | |
32 | + # print(testunit) | |
33 | + return testunit | |
34 | + | |
35 | + | |
36 | +def Run_Testcase(testsuit): | |
37 | + '''运行测试用例并生成报告''' | |
38 | + now = time.strftime("%Y-%m-%d %H_%M_%S", time.localtime()) | |
39 | + path = os.path.dirname(os.path.abspath(sys.argv[0])) | |
40 | + report_file = os.path.abspath(os.path.join(path))+ "/report/" + now + "_result.html" | |
41 | + # 创建报告文件 | |
42 | + fp = open(report_file, 'wb') | |
43 | + | |
44 | + runner = HTMLTestRunner_cn.HTMLTestRunner( | |
45 | + stream=fp, | |
46 | + title=u'重构项目接口测试报告', | |
47 | + description=u'用例简要执行情况如下:(注:报告详细信息需要下载report.html并用浏览器打开)', | |
48 | + verbosity=2) | |
49 | + # 执行用例 | |
50 | + runner.run(testsuit) | |
51 | + # 关闭文件 | |
52 | + fp.close() | |
53 | + return report_file | |
54 | + | |
55 | + | |
56 | +def Send_email(filename): | |
57 | + '''判断邮件发送逻辑''' | |
58 | + l = eval(com.get_global_config("global_data", "email", "list").lower()) | |
59 | + if type(l) != type([]): | |
60 | + raise Exception("error,pls input list type send-email address") | |
61 | + elif len(l) == 0: | |
62 | + print("\n list of send-email is null,won't send email!") | |
63 | + elif len(l) != 0: | |
64 | + for i in l: | |
65 | + print("\n check send-email format : {}".format(i)) | |
66 | + if re.match(r'^[0-9a-zA-Z_]{1,19}@[0-9a-zA-Z]{1,13}\.[com,cn,net]{1,3}$', i): | |
67 | + pass | |
68 | + else: | |
69 | + raise Exception("error,pls check your send-email format") | |
70 | + # 发送邮件 | |
71 | + em.send_email(filename, l) | |
72 | + else: | |
73 | + print("\n Haven't sent the email,pls check send-email address!") | |
74 | + | |
75 | + | |
76 | +if __name__ == "__main__": | |
77 | + # 检测数据库 | |
78 | + db.mysql_conn_test() | |
79 | + # 检测登录接口 | |
80 | + my.check_login("user01") | |
81 | + # 创建测试套,运行测试用例,生成报告 | |
82 | + report = Run_Testcase(Create_Testcase_suite()) | |
83 | + # 发送邮件 | |
84 | + Send_email(report) | |
0 | 85 | \ No newline at end of file | ... | ... |