码迷,mamicode.com
首页 > Web开发 > 详细

[Selenium] 实例二:web自动化测试

时间:2015-07-08 14:16:39      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

虽然我们通常使用Selenium来写测试脚本,但是Selenium本身不提供测试框架。在这里,我们可以结合Python自动化框架unittest库来进行web测试。当然你也可以使用其他测试框架或工具,如py.test和nose.

下面是结合百度搜索的一个测试函数:

#coding:utf-8

import time
import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

class  KeySearch(unittest.TestCase):
    def setUp(self):
        print("start to test")
        self.browser = webdriver.Chrome()

    def test_search_in_Baidu(self):
        browser = self.browser
        browser.get(http://www.baidu.com)
        self.assertIn("百度", browser.title)
        elem = browser.find_element_by_id("kw")
        elem.send_keys("test")
        elem.send_keys(Keys.RETURN)
        #self.assertIn("结果",browser.page_source)  # 有点问题, 待调试

    def test_search_in_Google(self):
        browser = self.browser
        browser.get(http://www.google.com)
        self.assertIn("Google", browser.title)
        elem = browser.find_element_by_id("lst-ib")
        elem.send_keys("test")
        elem.send_keys(Keys.RETURN)
        self.assertIn("results",browser.page_source)

    def tearDown(self):
        print("tearDown the test")
        time.sleep(5)
        self.browser.close()

if __name__ == "__main__":
    unittest.main()

In the above example, selenium 提供了webdriver的所有实现,Unittest组织整个测试框架。在这个实例中,所有的selenium操作在 [Selenium] 从一个实例开始,访问Baidu并进行关键字搜索 有所介绍,在这里,只介绍unittest的框架。

 

在这个测试脚本中,类KeySearch继承于unittest.TestCase,从而告知unitest模块,这是个测试类。

class  KeySearch(unittest.TestCase):

测试类的调用通过 unittest.main()

unittest.main()

 

类KeySearch中的函数,除了setUp和tearDown都是一个独立的测试用例。 通常测试用例函数以字符串test开头

def test_search_in_Baidu(self):
def test_search_in_Google(self):

 

每次执行一个测试用例都会调用setUp和Teardown 函数,如这个用例的测试打印结果如下

Start to test
Search in Baidu
TearDown the test
Start to test
.Search in Google
TearDown the test
.
----------------------------------------------------------------------
Ran 2 tests in 26.998s

OK

Process finished with exit code 0

 

Open Issue:

self.assertIn("结果",browser.page_source) # 有点问题, 待调试

会出问题,而google就没这个问题,是因为中文支持的原因吗?待调查,如果有朋友知道,如能告知,万分感谢

self.assertIn("\u7ed3\u679c",browser.page_source)
AssertionError: ‘\u7ed3\u679c‘ not found in ……..

[Selenium] 实例二:web自动化测试

标签:

原文地址:http://www.cnblogs.com/orangeseason/p/4629963.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!