diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 3d73ecb..62cd586 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,14 +2,10 @@ - - - + - - @@ -135,13 +150,14 @@ @@ -171,26 +187,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -411,8 +407,8 @@ - - + + @@ -441,9 +437,6 @@ - - - @@ -495,16 +488,6 @@ - - - - - - - - - - @@ -532,16 +515,6 @@ - - - - - - - - - - @@ -552,38 +525,61 @@ - - - - - - - - - + + - - - - - - - - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index 4def6f5..1f8f607 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # Automated-Test -页面自动化测试框架 +## Web自动化测试框架 -测试框架: -python3+Selenium+unittest自动化UI测试框架 +### 测试框架: +python3+Selenium+unittest+HTMLTestRunner+pageObject Web自动化测试框架 (selenium+unittest搭建的WebUI自动化测试框架) @@ -12,35 +12,41 @@ python3+Selenium+unittest自动化UI测试框架 测试代码托管平台:GitHub 通过主从服务器执行测试 -测试代码结构: +### 测试代码结构: ![](https://raw.githubusercontent.com/linyuli861/Automated-Test/master/z-README-image/structure.png) -> common文件夹存放公有元素,如url,测试报告发送邮件地址,使用信息等; +* common文件夹存放公有元素,如url,测试报告发送邮件地址,使用信息等; -> file文件夹存放测试过程中需要使用的文件,如图片,txt,zip文件等 +* file文件夹存放测试过程中需要使用的文件,如图片,txt,zip文件等 -> page文件夹用于存放测试过程中需要使用的页面元素 +* page文件夹用于存放测试过程中需要使用的页面元素 -> report文件夹用于存放测试生成的测试报告 +* report文件夹用于存放测试生成的测试报告 -> testcase文件夹中存放测试用例 +* testcase文件夹中存放测试用例 -> HTMLTestRunner.py是将测试结果生成为html版的测试报告的文件 +* HTMLTestRunner.py是将测试结果生成为html版的测试报告的文件 -> run.py 执行run.py文件可以执行全部测试用例 +* run.py 执行run.py文件可以执行全部测试用例 -生成的测试报告例子如下所示 +###生成的测试报告例子如下所示 ![](https://raw.githubusercontent.com/linyuli861/Automated-Test/master/z-README-image/report.png) +###发送邮件如下所示: 调用common中的sendEmail,向指定邮箱发送最新的测试报告文件 -发送邮件如下所示: - ![](https://raw.githubusercontent.com/linyuli861/Automated-Test/master/z-README-image/email.jpg) +###PageObject设计模式 +由于Web页面自动化测试的过程中会存在许多重复的元素,且很多Web页面测试的元素值不稳定,经常变更, +为了使得Web页面自动化测试的代码更具有健壮性,因此使用PageObject设计模式, +将web自动化测试的测试用例和测试用例中需要使用到的元素解耦。 + +*解耦后的代码方便修改,增强了自动化测试代码的复用性。* + diff --git a/common/sendEmail.py b/common/sendEmail.py index 0ef36d1..41b7bc9 100644 --- a/common/sendEmail.py +++ b/common/sendEmail.py @@ -1,4 +1,13 @@ # email:3381350680@qq.com password:abc123456 +""" +使用一个邮箱向另一个邮箱发送测试报告的html文件,这里需要对发送邮件的邮箱进行设置,获取邮箱授权码。 +username=“发送邮件的邮箱”, password=“邮箱授权码” +这里要特别注意password不是邮箱密码而是邮箱授权码。 + +mail_server = "发送邮箱的服务器地址" +这里常用的有 qq邮箱——"stmp.qq.com", 163邮箱——"stmp.163.com" +其他邮箱可自行百度 +""" import os import smtplib from email.mime.text import MIMEText diff --git a/run.py b/run.py index ef1a0d1..c19555f 100644 --- a/run.py +++ b/run.py @@ -19,12 +19,13 @@ if __name__ == '__main__': now = time.strftime("%Y-%m-%d %H_%M_%S") # 报告生成时间 test_reports_address = '../report' # 测试报告存放位置 filename = '../report/' + now + 'report.html' # 设置报告文件名 - f = open(filename, 'wb') - runner = HTMLTestRunner.HTMLTestRunner(stream=f, title=u'Web自动化测试', description=u'详细测试结果如下:') + fp = open(filename, 'wb') + runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'Web自动化测试', description=u'详细测试结果如下:') runner.run(cases) - f.close() - # time.sleep(6) - # # 查找最新生成的测试报告地址 - # new_report_addr = SendEmail().acquire_report_address(test_reports_address) - # # 自动发送邮件 - # SendEmail().send_email(new_report_addr) + fp.close() + # 向指定邮箱发送测试报告的html文件 + time.sleep(6) + # 查找最新生成的测试报告地址 + new_report_addr = SendEmail().acquire_report_address(test_reports_address) + # 自动发送邮件 + SendEmail().send_email(new_report_addr)