var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-333696-1']); _gaq.push(['_trackPageview']); _gaq.push(['_trackPageLoadTime']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();
  • 2011年04月01日

    Python脚本 Selenium测试

    分类:

    来自讨论Python + Selenium 编写脚本问题

     

    Python脚本语言使用Selenium示例代码目前在test目录下。浏览test_google.pytest_i18n.py可发现其测试类中分别有三个方法:setUPtest_nametearDown。前后两个函数必须那样命名,这是因为Python Lib目录下的unittest.py中类FunctionTestCase方法__init__写死了。

     

    selenium_test_suite.py中的方法suite对定义的测试方法做了映射,可以发现其以’test’为前缀。unittest.py中类TestLoader中的方法getTestCaseNames中嵌套的方法 isTestMethod判定处理前缀为prefix的属性,而它被_makeLoader方法调用,方法makeSuitefindTestCases都调用方法_makeLoader并且默认prefix值为’test;’ TestLoader中的方法loadTestsFromTestCase也调用了此类中的方法getTestCaseNames。测试方法前缀默认为’test’,由此可知当调用参数有前缀参数时这个’test’前缀是可选的,此时在suite中映射时必须包含该测试方法的前缀。这里可以参考其在文件unittest.py中的定义

    def makeSuite(testCaseClass, prefix='test', sortUsing=cmp, suiteClass=TestSuite):

        return _makeLoader(prefix, sortUsing, suiteClass).loadTestsFromTestCase(testCaseClass)

     

    def findTestCases(module, prefix='test', sortUsing=cmp, suiteClass=TestSuite):

        return _makeLoader(prefix, sortUsing, suiteClass).loadTestsFromModule(module)

     

    unittest.pyunittest模块被叫做Python单元测试框架

    分享到:

    历史上的今天:

    Ajax网页自动化测试 2009年04月01日
    IE Application Layout 2008年04月01日