python selenium T2
自动化测试模型
模块驱动测试、数据驱动测试、对象驱动测试
数据驱动减肥:数据的改变(更新)驱动自动化执行,从而引起测试结果的改变
关键字驱动:
QTP , Rebot framework 等是以关键字驱动为主的自动化工具
目前自动化测试定位在冒烟测试和回归测试
EG1 :
import time from datetime import datetime import unittest import os from selenium import webdriver from selenium.webdriver.common.keys import Keys class WebTestCase(unittest.TestCase): def setUp(self): self.testpng = os.path.join(os.getcwd(), 'testpng') if not os.path.exists(self.testpng): os.makedirs(self.testpng) self.driver = webdriver.Chrome() self.base_url = 'http://baidu.com' def testsearch(self): self.driver.get(self.base_url) ele = self.driver.find_element_by_name('wd') ele.send_keys('unittest') time.sleep(2) fpng = os.path.join(self.testpng ,'test_%s.png'%(datetime.now().strftime('%Y-%m-%d_%H-%M-%s') ,)) self.driver.get_screenshot_as_file(fpng) def tearDown(self): self.driver.quit() def suite(): suite = unittest.TestSuite() suite.addTest(WebTestCase('testsearch')) return suite def suite2(): return unittest.makeSuite(WebTestCase,'test') if __name__ == '__main__': suite = suite2() runner = unittest.TextTestRunner() runner.run(suite)
EG2:
test_case.py import os case_d = os.path.join(os.getcwd() , 'test_case') caselist = os.listdir(case_d) for case in caselist: if case.endswith('.py') and case != '__init__.py': print(case) os.system('python3 %s 1>>log.txt 2>&1'%(os.path.join(case_d , case)))
test_case/baidu.py import unittest, time, re class Baidu(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.implicitly_wait(30) self.base_url = 'http://baidu.com' self.verifications_errors = [] self.accept_next_alert = True def test_baidu_search(self): driver = self.driver driver.get(self.base_url + '/') driver.find_element_by_name('wd').send_keys('unittest') driver.find_element_by_id('su').click() time.sleep(2) driver.close() def tearDown(self): self.driver.quit() self.assertEqual([], self.verifications_errors) if __name__ == '__main__': unittest.main()
python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
http://www.cnblogs.com/testyao/p/5658200.html
EG4 :
from HTMLTestRunner import HTMLTestRunner class Baidu(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.implicitly_wait(30) self.base_url = 'http://baidu.com' self.verifications_errors = [] self.accept_next_alert = True def test_baidu_search(self): driver = self.driver driver.get(self.base_url + '/') driver.find_element_by_name('wd').send_keys('unittest') driver.find_element_by_id('su').click() time.sleep(2) driver.close() def tearDown(self): self.driver.quit() self.assertEqual([], self.verifications_errors) if __name__ == '__main__': suite = unittest.TestSuite() suite.addTest(Baidu('test_baidu_search')) filename = 'report.html' with open(filename, 'wb') as fp: runner = HTMLTestRunner( stream=fp, title='baidu search test', description='run report') runner.run(suite)
Result: