设为首页 加入收藏

TOP

Selenium+Python ---- 免登录、等待、unittest单元测试框架、PO模型(三)
2017-12-23 06:06:55 】 浏览:743
Tags:Selenium Python ---- 登录 等待 unittest 单元 测试 框架 模型
f.username_top).text

test_login.py

 1 import unittest
 2 from selenium import webdriver
 3 from seleniumframework.PO.login_page import LoginPage
 4 import time
 5 
 6 class TestBaiduLogin(unittest.TestCase):
 7     """UI自动化登录"""
 8     def setUp(self):
 9         self.url = "http://www.baidu.com"
10         self.driver = webdriver.Firefox()
11         self.driver.implicitly_wait(20)
12         # self.verificationErrors = []
13 
14     def tearDown(self):
15         time.sleep(5)
16         self.driver.quit()
17         # self.assertEqual([],self.verificationErrors)
18 
19     def test_login(self):
20         """百度登录"""
21         sp = LoginPage(self.driver)
22         sp.open(self.url)
23         sp.click_link()
24         sp.run_case("hanxiaobei","xxxxxxx")
25         self.assertEqual(sp.get_username(),"hanxiaobei",msg="验证失败!")

main.py 运行的主入口

 1 import unittest
 2 import HTMLTestRunner
 3 
 4 #相对路径
 5 testcase_path = ".\\testcase"
 6 report_path = ".\\report\\report.html"
 7 def creat_suite():
 8     uit = unittest.TestSuite()
 9     discover = unittest.defaultTestLoader.discover(testcase_path,pattern="test_*.py")
10     for test_suite in discover:
11         # print(test_suite)
12         for test_case in test_suite:
13             uit.addTest(test_case)
14     return uit
15 
16 suite = creat_suite()
17 fp = open(report_path,"wb")
18 runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title="测试结果",description="测试搜索结果")
19 runner.run(suite)
20 fp.close()

解决报告命名的问题:

1 now = time.strftime("%Y-%m-%d-%H-%M-%S",time.localtime(time.time()))
2 print(now)
3 report_path = ".\\report\\"+now+"report.html"

测试报告截图:

 

search_page.py

 1 from selenium.webdriver.common.by import By
 2 from seleniumframework.PO import base_page
 3 
 4 #继承base后既可以调用base的方法也可自己添加新的方法
 5 class SearchPage(base_page.Action):
 6 
 7     #通过id进行定位元素
 8     search_loc = (By.ID,"kw")
 9 
10     def run_case(self,value):
11         #第一种利用原生的send_keys方法
12         self.find_element(*self.search_loc).send_keys(value)
13 
14         #第二种利用二次封装的send_keys方法
15         # self.send_keys(self.search_loc,value)

test_search.py

 1 import unittest
 2 from selenium import webdriver
 3 from seleniumframework.PO.search_page import SearchPage
 4 import time
 5 
 6 class TestBaiduSearch(unittest.TestCase):
 7     """UI自动化搜索"""
 8     def setUp(self):
 9         self.url = "http://www.baidu.com"
10         self.driver = webdriver.Firefox()
11         self.driver.implicitly_wait(20)
12         self.verificationErrors = []
13 
14     def tearDown(self):
15         time.sleep(5)
16         self.driver.quit()
17         self.assertEqual([],self.verificationErrors)
18 
19     def test_search(self):
20         """搜索测试关键字"""
21         sp = SearchPage(self.driver)
22         sp.open(self.url)
23         sp.run_case("测试")

 

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇window7_64+python3.6安装Twisted 下一篇Celery(四)定时任务

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目