python+selenium简易自动化框架,包含生成测试报告以及发送结果至Email

时间:2022-05-07 10:41:48

Selenium+python环境搭建见虫师的pdf文档,非常详尽

简易框架:

1.文件目录:

aaarticlea/png;base64,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" alt="" />

report目录中存放测试结果,如:

aaarticlea/png;base64,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" alt="" />

Test_case中存放所有用例case,以及public公共目录,和Data(测试数据)

aaarticlea/png;base64,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" alt="" />

当然测试数据如果不复杂,我们可以直接写在config中

aaarticlea/png;base64,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" alt="" />

2.testcase内容编写

在test_case下新增一个.py的文件

第一步:引用文件

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re,ConfigParser
import sys
sys.path.append('\public')
from public import login

第二步:新建类

固定的那个方法 setUp,tearDown,包含了python中config的读取.,类里面的方法调用时前面加上self.

class Cyt(unittest.TestCase):
def setUp(self):
cf=ConfigParser.RawConfigParser()
cf.read("config.conf")
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
self.base_url = cf.get("info","url")
print self.base_url
self.verificationErrors = []
self.accept_next_alert = True
self.username=cf.get("info","username")
self.pwd=cf.get("info","pwd")
self.cytpwd=cf.get("info","cytpwd") def test_cyt01_index(self):
u'''首页加载'''
driver=self.driver
driver.set_window_size(414,736)
driver.get(self.base_url)
driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[2]/a').click()
driver.set_page_load_timeout(30)
time.sleep(2)
title=driver.title
catched=False
try:
self.assertEqual(u'XXXX',title)
except AssertionError as e:
catched=True
self.verificationErrors.append(str(e))
if catched:
print u'XX界面异常'
else:
print u'XX界面正常'
driver.back()
self.cyt02_investlist()

......中间若干方法或者若干testcase,结尾处加上tearDown,以及main。。

    def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors) if __name__ == '__main__':
unittest.main()

登录模块写在public里,别的模块直接引入包 就可直接调用

#coding=utf-8
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import unittest, time #登陆模块(函数)
def login(self):
driver = self.driver
driver.get(self.base_url + "/")
print self.base_url
account=driver.find_element_by_xpath("/html/body/div[2]/ul/li[4]/a").click()
time.sleep(2)
driver.find_element_by_name("username").clear()
driver.find_element_by_name("username").send_keys(self.username)
driver.find_element_by_name("password").clear()
driver.find_element_by_name("password").send_keys(self.pwd)
driver.find_element_by_xpath("/html/body/div/div/form[1]/div[4]/input").submit()
time.sleep(5)
title=driver.title
error1=True
try:
self.assertEqual(u"账号登录", title)
except AssertionError as e:
error1=False
if error1:
driver.find_element_by_id("password").clear()
driver.find_element_by_id("password").send_keys(self.cytpwd)
driver.find_element_by_id("login_btn").submit()
time.sleep(2)

第三步,生成测试结果,并发送测试结果至指定的邮箱

#coding=utf-8
import unittest
import HTMLTestRunner
import os ,time,datetime
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
import ConfigParser
#=============定义发送邮件========== cf=ConfigParser.RawConfigParser()
cf.read("config.conf")
mdir= cf.get("info","dir")
result_dir=mdir+"report"
case_dir=mdir+"test_case"
def sentmail(file_new):
mail_from=cf.get("info","mail_from")
mail_to=cf.get("info","mail_to")
f = open(file_new, 'rb')
mail_body = f.read()
f.close()
msg=MIMEText(mail_body,_subtype='html',_charset='utf-8')
msg['From']=u'自动化测试'
msg['Subject']=u"XX测试报告"
msg['date']=time.strftime('%a, %d %b %Y %H:%M:%S %z')
str_smtp=cf.get("info","smtp")
smtp=smtplib.SMTP_SSL(str_smtp,465)
email_pwd=cf.get("info","email_pwd")
smtp.login(mail_from,email_pwd)
smtp.sendmail(mail_from,mail_to,msg.as_string())
smtp.quit()
print 'email has send out !' def sendreport():
lists=os.listdir(result_dir)
lists.sort(key=lambda fn: os.path.getmtime(result_dir+"\\"+fn) if not
os.path.isdir(result_dir+"\\"+fn) else 0)
print (u'最新测试生成的报告: '+lists[-1])
file_new = os.path.join(result_dir,lists[-1])
print file_new
sentmail(file_new) listaa=mdir+"test_case"
def creatsuit():
testunit=unittest.TestSuite()
discover=unittest.defaultTestLoader.discover(listaa,
pattern ='*.py',top_level_dir=None)
for test_suite in discover:
for test_case in test_suite:
testunit.addTests(test_case)
print testunit
return testunit if __name__ == "__main__":
now = time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime(time.time()))
filename = result_dir+'\\'+now+'result.html'
fp = file(filename, 'wb')
runner =HTMLTestRunner.HTMLTestRunner(
stream=fp,
title=u'XX测试报告',
description=u'用例执行情况:')
runner.run(creatsuit())
fp.close()
sendreport()

测试报告:

aaarticlea/png;base64,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" alt="" />