from selenium import webdriver
import unittest
import time class Blog(unittest.TestCase):
"""登录博客园""" # 添加@classmethod装饰器,只打开浏览器一次
@classmethod
def setUpClass(cls):
"""初始化"""
cls.browser = webdriver.Chrome()
cls.url = 'https://passport.cnblogs.com/user/signin'
cls.browser.get(cls.url)
cls.browser.implicitly_wait(30)
cls.browser.maximize_window() def login(self, username, password):
"""登录帐号密码参数化"""
self.browser.find_element_by_id('input1').send_keys(username)
self.browser.find_element_by_id('input2').send_keys(password)
self.browser.find_element_by_id('signin').click()
time.sleep(3) def is_login_sucess(self):
"""判断是否获取登录后账户名称"""
time.sleep(2)
try:
text = self.browser.find_element_by_id('lnk_current_user').text
print(text)
return True
except:
return False def back_out(self):
# 退出返回登录页面
time.sleep(2)
self.browser.find_element_by_xpath('//*[@id="header_user_right"]/a[5]').click()
time.sleep(2)
# alert方法去掉退出弹框
s = self.browser.switch_to_alert()
s.accept()
time.sleep(2)
self.browser.find_element_by_xpath('//*[@id="header_user_left"]/a[1]').click()
time.sleep(2) def clear_box(self):
"""清空输入框"""
self.browser.find_element_by_id('input1').clear()
self.browser.find_element_by_id('input2').clear()
time.sleep(1) def test_01(self):
"""调用login函数登录"""
self.login('uesrname', 'password')
result = self.is_login_sucess()
self.assertTrue(result) def test_02(self):
"""错误的示范"""
self.back_out()
self.clear_box()
self.login('1', '2')
result = self.is_login_sucess()
self.assertTrue(result, msg='失败了呀,没有获取登录后的账户名称呢!') @classmethod
def tearDownClass(cls):
cls.browser.quit() if __name__ == '__main__':
"""生成html报告"""
import HTMLTestRunner
# now = time.s
now = time.strftime('%Y-%m-%d %H-%M-%S')
report_title = '博客园登录自动化测试'
# report_path = r'D:\PythonProject\com\report.html'
report_path = 'D:\\PythonProject\\com\\'+ now + 'report.html'
explain = '博客园登录测试报告' test_suite = unittest.TestSuite()
test_suite.addTest(Blog('test_01'))
test_suite.addTest(Blog('test_02')) with open(report_path, 'wb') as fp:
runner = HTMLTestRunner.HTMLTestRunner(title=report_title, stream=fp, description=explain)
runner.run(test_suite)
fp.close()
只打开一次浏览器,生成html测试报告<小紧张中......>的更多相关文章
-
生成HTML测试报告
HTMLTestRunner是Python标准库unittest单元测试框架的一个扩展,可以生成易于使用的HTML测试报告,这个扩展很简单,只有一个HTMLTestRunner.py,下载地址:htt ...
-
Python用HTMLTestRunner生成html测试报告
小编的主机:mac 一.引入HTMLTestRunner包 1.下载HTMLTestRunner.py,已上传到网盘,点击下载 2.将HTMLTestRunner.py复制到python安装目录的Li ...
-
[疑难杂症]__点击win10屏幕最上方的边界会莫名其妙打开Internet Explorer浏览器,不胜其烦(2次ps:已解决!!!).
关于问题描述: 每次误点到屏幕上边界会莫名打卡Internet Explorer浏览器(一开始开以为是自带的Edge浏览器,后来在查找相关解决方法的时候才发现并不是同一款浏览器) 这个问题存在好久了, ...
-
转 生成 HTMLTestRunner 测试报告
转自:http://www.cnblogs.com/hero-blog/p/4128575.html 04.生成 HTMLTestRunner 测试报告 1.HTMLTestRunner 是 P ...
-
Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告2(使用PyCharm )
1.说明 在我前一篇文件(Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告1(使用IDLE ))中简单的写明了,如何生产测试报告,但是使用IDLE很麻烦, ...
-
Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告1(使用IDLE)
1.说明 自动化测试报告是一个很重要的测试数据,网上看了一下,使用HTMLTestRunner.py生成自动化测试报告使用的比较多,但是呢,小白刚刚入手,不太懂,看了很多博客,终于生成了一个测试报告, ...
-
Appium+Python之生成html测试报告
思考:测试用例执行后,如何生成一个直观漂亮的测试报告呢? 分析:1.unittest单元测试框架本身带有一个textTestRunner类,可以生成txt文本格式的测试报告,但是页面不够直观 2.我们 ...
-
web自动化多次打开浏览器嫌烦?打开一次浏览器,pytest有个招
最近系统前端组件做了更新,我就把之前做的web自动化的代码做了一些修改,顺便优化了下用例,只保留少量的测试用例了,大头还是在接口自动化上.然后发现关于pytest的还有一个点应该比较常用,这里再介绍一 ...
-
C#自动化操作IE浏览器系列之一打开新的浏览器并导航到百度进行搜索
现在OA系统.生产管理系统都是B/S结构,很多的办公室工作都要用浏览器操作.自己会一点C# winform开发,就做个小工具自动化处理一些繁琐的操作. 我的开发环境是:win7旗舰版+VS2010(或 ...
随机推荐
-
【转】深入理解TextView实现Rich Text--在同一个TextView设置不同字体风格
深入理解TextView实现Rich Text--在同一个TextView设置不同字体风格 作者: 字体:[增加 减小] 类型:转载 本篇文章是对Android中在同一个TextView中设置不同 ...
-
TOM大叔的几道Javascript题目与解答
几道JS题目 之前没有深入研究js语言,最近几年前端越来越工程化,需要扎实的js基础,看到博客园上有很多大牛分享JS学习文章,幸运看到tom大叔的blog,抽时间潜心学习了其文章,遇到到其出的几道题目 ...
-
svn配置
svn配置 subverson.conf <Location /svn> DAV svn SVNListParentPath on SVNParentPath /var/repo Auth ...
-
linux的root登录password问题
以Ubuntu为样例, 第一次登录root用户的时候,让输入password总是显示认证失败 由于安装Ubuntu的时候没有设置root的password.所以每次开机都会分配不同的rootpassw ...
-
python描述符 descriptor
descriptor 在python中,如果一个新式类定义了__get__, __set__, __delete__方法中的一个或者多个,那么称之为descriptor.descriptor通常用来改 ...
-
TEA加密算法的文件加密和解密的实现
一.TEA加密算法简介 TEA加密算法是由英国剑桥大学计算机实验室提出的一种对称分组加密算法.它采用扩散和混乱方法,对64位的明文数据块,用128位密钥分组进行加密,产生64位的密文数据块,其循环轮数 ...
-
进程序名得到进程ID和句柄与进程的公司名(使用快照和GetPeFileCompany和VerQueryValueW等函数)
WORD GetProcessIdByName(WCHAR *processName){ DWORD processId = 0;HANDLE hProcessSnap=CreateToolhelp ...
-
深入浅出Win32多线程程序设计之基本概念
一.深入浅出Win32多线程程序设计之基本概念[转] 引言 从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓 ...
-
201521123089 《Java程序设计》第1周学习总结
1. 本周学习总结 学习了java的发展史以及JDK,JVM,JRE; 2. 书面作业 1.为什么java程序可以跨平台运行?执行java程序的步骤是什么? java有JVM,实在虚拟机上运行的. 2 ...
-
Opengl4.5 中文手册—D
索引 A B C D E F G H I J K L M N O P Q ...