编写Web测试用例python
1.介绍了unittest单元测试框架,其主要是来运行Web自动化测试脚本。简单的规划一下测试目录:
web_demo1/
------test_case/
------------test_baidu.py
------------test_google.py
------report/
------------login.txt
------runtest.py
目录结构以下图所示:web
建立web测试用例。框架
#test_baidu.py
#coding:utf-8
from selenium import webdriver
import unittest
import time
class MyTest(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(10)
self.base_url="http://www.baidu.com"
def test_baidu(self):
driver=self.driver
driver.get(self.base_url+"/")
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys("unittest")
driver.find_element_by_id("su").click()
time.sleep(2)
title=driver.title
self.assertEqual(title,u"unittest_百度搜索")
def tearDown(self):
self.driver.quit()
if __name__=="__main__":
unittest.main()
#test_google.py
#coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import unittest
import time
class MyTest(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(10)
self.base_url="https://www.google.com"
def test_google(self):
driver=self.driver
driver.get(self.base_url+"/")
driver.find_element_by_name("q").clear()
driver.find_element_by_name("q").send_keys("webdriver")
driver.find_element_by_name("q").send_keys(Keys.ENTER)
time.sleep(2)
title=driver.title
self.assertEqual(title,u"webdriver - Google 搜索")
def tearDown(self):
self.driver.quit()
if __name__=="__main__":
unittest.main()
在test_case/目录下分别建立百度搜索test_baidu和有道搜索test_google.py测试文件,并在测试文件中编写web自动化测试用例。单元测试
runtest.py文件以下图所示,这里需注意:(导入模块)因为test_baidu.py和test_google.py与runtest.py并不在同一个目录下,因此这里,只须要在test_case目录下加入一个__init__.py文件便可。学习
#runtest.py
#coding:utf-8 import unittest #加载测试集 from test_case import test_baidu from test_case import test_google #构造测试集 suite=unittest.TestSuite() suite.addTest(test_baidu.MyTest("test_baidu")) suite.addTest(test_google.MyTest("test_google")) if __name__=="__main__": runer=unittest.TextTestRunner() runer.run(suite)
2.保存测试结果测试
怎样把测试结果生成一个有log.txt的文件呢?这里须要借助dos命令来实现。
首先打开Windows命令提示符,进入到../web_demo1/目录下执行命令,以下图所示。ui
打开…./report/log.txt文件,内容以下图所示google
小结:学习unittest框架是为了用它来编写web自动化测试用例,利用其组织测试用例,断言预期结果以及批量执行测试用例等功能,能够很好地进行web自动化测试的开发。url