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测试报告<小紧张中......>的更多相关文章

  1. 生成HTML测试报告

    HTMLTestRunner是Python标准库unittest单元测试框架的一个扩展,可以生成易于使用的HTML测试报告,这个扩展很简单,只有一个HTMLTestRunner.py,下载地址:htt ...

  2. Python用HTMLTestRunner生成html测试报告

    小编的主机:mac 一.引入HTMLTestRunner包 1.下载HTMLTestRunner.py,已上传到网盘,点击下载 2.将HTMLTestRunner.py复制到python安装目录的Li ...

  3. [疑难杂症]__点击win10屏幕最上方的边界会莫名其妙打开Internet Explorer浏览器,不胜其烦(2次ps:已解决!!!).

    关于问题描述: 每次误点到屏幕上边界会莫名打卡Internet Explorer浏览器(一开始开以为是自带的Edge浏览器,后来在查找相关解决方法的时候才发现并不是同一款浏览器) 这个问题存在好久了, ...

  4. 转 生成 HTMLTestRunner 测试报告

    转自:http://www.cnblogs.com/hero-blog/p/4128575.html 04.生成 HTMLTestRunner  测试报告   1.HTMLTestRunner 是 P ...

  5. Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告2(使用PyCharm )

    1.说明 在我前一篇文件(Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告1(使用IDLE ))中简单的写明了,如何生产测试报告,但是使用IDLE很麻烦, ...

  6. Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告1(使用IDLE)

    1.说明 自动化测试报告是一个很重要的测试数据,网上看了一下,使用HTMLTestRunner.py生成自动化测试报告使用的比较多,但是呢,小白刚刚入手,不太懂,看了很多博客,终于生成了一个测试报告, ...

  7. Appium+Python之生成html测试报告

    思考:测试用例执行后,如何生成一个直观漂亮的测试报告呢? 分析:1.unittest单元测试框架本身带有一个textTestRunner类,可以生成txt文本格式的测试报告,但是页面不够直观 2.我们 ...

  8. web自动化多次打开浏览器嫌烦?打开一次浏览器,pytest有个招

    最近系统前端组件做了更新,我就把之前做的web自动化的代码做了一些修改,顺便优化了下用例,只保留少量的测试用例了,大头还是在接口自动化上.然后发现关于pytest的还有一个点应该比较常用,这里再介绍一 ...

  9. Pytest单元测试框架生成HTML测试报告及优化

    一.安装插件 要生成html类型的报告,需要使用pytest-html插件,可以在IDE中安装,也可以在命令行中安装.插件安装 的位置涉及到不同项目的使用,这里不再详述,想了解的可自行查询. IDE中 ...

随机推荐

  1. winform嵌入word解决方案一

    最近一直想用VC#2005做个内嵌WORD/OFFICE的WINFORM程序,目前主要有以下解决途径: 1.直接通过API把WORD/OFFICE的窗口句柄给放到WINFORM中(感觉较为复杂): 2 ...

  2. es6 学习二 Generator

    安装babel的拓展包(Polyfill) ,对Generator的转义 这是一个补完babel支持es6的拓展包,配置步骤为3个: 打开命令行键入 npm install --save-dev ba ...

  3. java Date型时间比较大小

    两个Date类型的变量可以通过compareTo方法来比较.此方法的描述是这样的:如果参数 Date 等于此 Date,则返回值 0:如果此 Date 在 Date 参数之前,则返回小于 0 的值:如 ...

  4. state访问状态对象

    状态对象赋值给内部对象,也就是把stroe.js中的值,赋值给我们模板里data中的值.我们有三种赋值方式: 1.通过computed的计算属性直接赋值 Count.vue {count} <s ...

  5. .NET Core 使用 Kestrel

    Kestrel介绍 Kestrel是一个基于libuv的跨平台web服务器 在.net core项目中就可以不一定要发布在iis下面了 Kestrel体验 可以使用useUrls来设置一个请求的地址 ...

  6. wamp设置本地访问路径为a.com

    我们在用wamp进行本地建站时经常会碰到页面样式无法正常加载,这是因为没有正确加载css路径,那我们就用wamp设置本地访问路径为a.com指向本地的一个虚拟空间,如何操作呢?下面就跟随ytkah一起 ...

  7. SQL Server的等待事件

    具体查看: https://www.sqlshack.com/sql-server-wait-types/ 早上10:00, 公司的订单数据更新缓慢,查看了监控的sql信息,有大量的HADR_SYNC ...

  8. Mysql聚集索引的使用

    聚集索引 聚簇索引并不是一种单独的索引类型,而是一种数据存储方式(不是数据结构,而是存储结构),具体细节依赖于其实现方式,聚簇索引实际上是在同一个结构中保存了btree索引和数据行. innodb将通 ...

  9. 前端框架之Vue(3)-计算属性

    计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example"> {{ ...

  10. css实现右侧固定宽度,左侧宽度自适应

    https://blog.csdn.net/qq_22889599/article/details/78414040 反过来也可以:左侧宽度固定,右侧自适应.不管是左是右,反正就是一边宽度固定,一边宽 ...