zoukankan      html  css  js  c++  java
  • (四十四)Unittest单元测试框架之关于unittest还需要知道的-编写Web测试用例

    随笔记录方便自己和同路人查阅。

    #------------------------------------------------我是可耻的分割线-------------------------------------------

      学习selenium自动化之前,最好先学习HTML、CSS、JavaScript等知识,有助于理解定位及操作元素的原理。关于python和selenium安装请自行搜索别的资料,这里就不多做介绍了,所有例子均使用python3.6+selenium执行的。

    #------------------------------------------------我是可耻的分割线-------------------------------------------

    编写Web测试用例

    前面用了相当多的文章详细介绍了unittest单元测试框架,其目的是用它来运行Web自动化测试脚本。再次致歉,需要简单规划以下测试目录:

    创建Web测试用例。新建test_baidu.py

    # !/usr/bin/env python
    # -*- coding: UTF-8 –*-
    __author__ = 'Mr.Li'
    
    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('ke').send_keys('unittest')
            driver.find_element_by_id('su').click()
            time.sleep(2)
            title = driver.title
            self.assertEqual(title,"unittest_百度搜索")
        
        def tearDown(self):
            self.driver.quit()
    
    if __name__ == '__main__':
        unittest.main()

    新建test_youdao.py文件

    # !/usr/bin/env python
    # -*- coding: UTF-8 –*-
    __author__ = 'Mr.Li'
    
    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.youdao.com'
    
        def test_baidu(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_xpath('//*[@id="form"]/button').click()
            time.sleep(2)
            title = driver.title
            print(title)
            self.assertEqual(title, "【webdriver】什么意思_英语webdriver的翻译_音标_读音_用法_例句_在线翻译_有道词典")
    
        def tearDown(self):
            self.driver.close()
    
    
    if __name__ == '__main__':
        unittest.main()

    test_case/目录下分别创建百度搜索test_baidu.py和有道搜索test_youdao.py测试文件,并在测试文件中编写Web自动化测试用例。

    runtest.py

    import unittest
    
    #定义测试用例的目录为当前目录
    test_dir = './'
    dicscover = unittest.defaultTestLoader.discover(test_dir,pattern='test*.py')
    
    #执行测试类的测试方法
    if __name__ == '__main__':
        runner = unittest.TextTestRunner()
        runner.run(dicscover)

    保存测试结果

    你可能还有个疑问,report目录是做什么的?也许从命名上你已经猜到它是用来存放测试报告的,那么怎样把测试结果生成一个log.txt的文件呢?这里需要借助dos命令来实现。

    首先打开Windows命令提示符,进入.../test_project/目录下执行命令,如下图:

    执行命令:python runtest.py >> report/log.txt 2>&1

    打开log.txt文件

  • 相关阅读:
    火星救援
    Android学习笔记(8)————详细谈谈intent的startActivityForResult()方法
    Android小技巧(二):为ContentProvider添加数据库事务支持
    Android小技巧(一):实现捕获应用的运行时异常
    理解Activity的生命周期
    Android异步处理四:AsyncTask的实现原理
    Android异步处理三:Handler+Looper+MessageQueue深入详解
    Android异步处理二:使用AsyncTask异步更新UI界面
    Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
    Android APK反编译详解(附图)
  • 原文地址:https://www.cnblogs.com/lirongyang/p/11505127.html
Copyright © 2011-2022 走看看