首页 > Web开发 > 详细

(四十四)Unittest单元测试框架之关于unittest还需要知道的-编写Web测试用例

时间:2019-12-15 13:57:29      阅读:91      评论:0      收藏:0      [点我收藏+]

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

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

  学习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文件

技术分享图片

 

(四十四)Unittest单元测试框架之关于unittest还需要知道的-编写Web测试用例

原文:https://www.cnblogs.com/lirongyang/p/11505127.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!