今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程。以后各位只要着重如何编写测试用例即可,其他模板可以套用的,希望帮助到大家。
环境准备:
操作系统:Windows7
集成开发环境:eclipse+pydev
一、编写测试用例
可以直接使用Python自带的单元测试框架unittest来编写自动化测试用例,利用其组织测试用例,断言预期结果,以及批量执行测试用例等功能,可以很好的进行Web自动化测试的开发。
可以直接查看我另外一篇博文总结:unittest单元测试框架总结
里边详细总结了使用unittest框架编写测试用例思路(模板)和使用unittest框架编写测试用例实例。
目录结构如下组织:
如上图:test_case目录下有两个测试用例,其中test_baidu.py实例代码在博文“unittest单元测试框架总结”中有贴出。其他实例,可以参考模板实现,就不全部贴出代码了。
而这次需要测试的就是test_baidu.py和test_youdao.py这两个测试用例。
二、执行测试用例,查找最新测试用例,自动发送测试报告
整个代码执行过程可以分成三个步骤:
1.通过unittest框架的discover()找到匹配的测试用例(以test_开头的脚本),由HTMLTestRunner的run()方法执行测试用例并生成最新测试报告。HTMLTestRunner是Python标准卡unittest单元测试框架的一个扩展,主要用于生成HTML测试报告,以便生成一份通俗易懂的测试报告来展示自动化测试成果。
HTMLTestRunner模块下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
将下载的文件保存在C:\Python27\Lib目录下即可。
2.先定义new_file()函数(找到某目录最新文件),调用new_file()函数找到测试报告目录下最新生成的测试报告,返回最新测试报告的路径。
3.先定义send_email()函数(发送指定路径下某文件的邮件),将得到的最新测试报告的完整路径传给send_email()函数,实现发邮件功能。
关于发邮件功能,也可以参考我另外一篇博文:Python自动发邮件总结及实例说明
代码如下:注释中包括实现的过程说明以及一些在测试过程中遇到的问题。
文件命名为runtest_htmltestrunner_autosendemail.py
# coding=utf-8
'''
Created on 2016-7-26
@author: Jennifer
Project:整合自动发邮件功能,执行测试用例生成最新测试报告,取最新的测试报告,发送最新测试报告
问题,邮件始终不能显示html:将电脑时间改为北京时间即可
'''
import unittest
from HTMLTestRunner import HTMLTestRunner
import time
import os
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header