Selenium 2自动化测试实战34(编写Web测试用例)

编写Web测试用例

1.介绍了unittest单元测试框架,其主要是来运行Web自动化测试脚本。简单的规划一下测试目录:
web_demo1/
------test_case/
------------test_baidu.py
------------test_google.py
------report/
------------login.txt
------runtest.py
目录结构如下图所示:

Selenium 2自动化测试实战34(编写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/目录下执行命令,如下图所示。

Selenium 2自动化测试实战34(编写Web测试用例)

打开…./report/log.txt文件,内容如下图所示

Selenium 2自动化测试实战34(编写Web测试用例)


小结:学习unittest框架是为了用它来编写web自动化测试用例,利用其组织测试用例,断言预期结果以及批量执行测试用例等功能,可以很好地进行web自动化测试的开发。

相关推荐