from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText import smtplib # 设置邮件服务器地址 smtpserver = 'smtp.163.com' # 设置邮件服务器端口号 port = 25 # 发件人地址 sender = 'jingying0037@163.com' # 密码或授权码 password = 'AVNCNFWSUJQEALFA' # 收件人 receivers = 'BLN1632498232@163.com' # 创建邮件对象 mail = MIMEMultipart() # 初始化发件人 mail['from'] = sender # 添加收件人 mail['to'] = receivers # 添加主题 mail['subject'] = 'Ranzhi自动化测试报告' # 读取附件 path = 'selenium/ranzhi/report/report_2021-03-02_16-35-57.html' with open(path, 'rb') as file: report = file.read() # 对附件进行编码 attachment = MIMEText(report, 'base64','utf-8') # 设置附件的类型 attachment['Content-Type'] = 'application/octet-stream' # 设置附件的处理方式 attachment['Content-Disposition'] = 'attachment;filename=%s'%path.split('/')[-1] # 添加附件 mail.attach(attachment) # 生成邮件正文 # 对邮件正文进行编码 body = MIMEText(content,'html','utf-8') # 添加正文 mail.attach(body) # 创建SMTP对象 smtp = smtplib.SMTP() # 连接服务器 smtp.connect(smtpserver,port) # 登录服务器 smtp.login(sender,password) # 发送邮件 smtp.sendmail(sender,receivers.split(';'),mail.as_string()) # 关闭服务器 smtp.close() print('邮件发送完毕!') import openpyxl # 打开工作部workbook workbook = openpyxl.load_workbook(r'selenium\ranzhi\data\data.xlsx') # 获取指定的工作表worksheet worksheet = workbook['login_success'] # 方法一 # a = [] # for row in worksheet: # r = [] # for c in row: # # c.value 获取单元格的内容 # r.append(c.value) # a.append(tuple(r)) # print(a) # 方法二:列表生成式 a = [tuple(c.value for c in row) for row in worksheet] print(a) from page.adduser_page import AddUserPage from page.login_page import LoginPage from base.util import BoxDriver class AddUserTest: '''添加用例''' def test(self): driver = BoxDriver('http://localhost/ranzhi/www/sys/admin/') addUserPage = AddUserPage(driver) addUserPage.login() addUserPage.add_user() if __name__ == '__main__': AddUserTest().test() from page.login_page import LoginPage from base.util import BoxDriver,GetExcel import unittest from parameterized import parameterized class LoginTest(unittest.TestCase): @classmethod def setUpClass(self): self.driver = BoxDriver('http://localhost/ranzhi/www/sys/user-login.html') self.page = LoginPage(self.driver) @classmethod def tearDownClass(self): self.driver.quit() @parameterized.expand(GetExcel().get(r'selenium\ranzhi\data\data.xlsx','login_success')) def test_login_successful(self,user,pwd): '''登陆成功测试用例''' self.page.login(user,pwd) # 断言 realname = self.page.get_realname() self.assertEqual(realname,user,'登陆失败') self.page.logout() def test_login_fail(self): '''登陆失败测试用例''' # self.page.login('user1','1234567') # self.page.confirm() # self.page.login('user2','1234567') # self.page.confirm() # self.page.login('user3','1234567') # self.page.confirm() pass if __name__ == "__main__": unittest.main() from base.HTMLTestRunner import HTMLTestRunner import unittest,time class TestRunner: def runner(self): # 实例化测试套件 suite = unittest.TestSuite() # 添加测试用例 suite.addTests(unittest.TestLoader().discover('selenium/ranzhi/test/',pattern='login_test.py')) # 创建一个时间戳 pre = time.strftime("%Y-%m-%d_%H-%M-%S") # 创建报告文件 report = open('selenium/ranzhi/report/report_%s.html'%pre,mode='wb') # 创建用例运行器 test_runner = HTMLTestRunner(stream=report,title='Ranzhi自动化测试报告',description='报告的详细内容...') # 运行报告 test_runner.run(suite) # 发送报告 if __name__ == '__main__': TestRunner().runner()
|