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

编写Web测试用例

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

创建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/目录下执行命令,如下图所示。

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

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

原文地址:https://www.cnblogs.com/Rita-LJ/p/11793018.html

时间: 2024-10-11 20:12:52

Selenium 2自动化测试实战34(编写Web测试用例)的相关文章

Selenium+Python自动化测试实战(2)元素定位

1.Selenium2 的原理 第一篇分享简单介绍了基于Python开发的Selenium2的环境配置,这篇主要讲一下基本用法.首先讲一下Selenium2的基本原理.基本上知道了这个东西是怎么回事,我们就知道怎么去用它做自动化测试. 与Selenium和Selenium RC不同,Selenium2将浏览器原生的API封装成WebDriver API,可以直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的),所以就像真正的用户在操作一样.其实刚

Selenium 2自动化测试实战4(引用模块)

一.模组1.模组也叫类库或模块,引用模块 在python中,通过import….或from….import….的方式引用模块,下面引用time模块 import time print (time.ctime())#输出结果为“Tue Jul 30 11:34:32 2019” 在time模块下面有一个ctime()方法用于获得当前时间,通过print()将当前时间打印出来.当然,如果确定了只会用到time下面的ctime()方法,也可以这样引入. from time import ctime p

Selenium 2自动化测试实战33(带unittest的脚本分析)

带unittest的脚本分析 #test.py #coding:utf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import Select from selenium.common.exceptions import N

Selenium 2自动化测试实战37(自动发邮件功能)

自动发邮件功能 例如,如果想在自动化脚本运行完成之后,邮箱就可以收到最新的测试报告结果.SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规划,由它来控制信件的中转方式.python的smtplib模块提供了一种很方便的途径用来发送电子邮件,它对SMTP协议进行了简单的封装.可以使用SMTP对象的sendmail方法发送邮件,通过help()可查看SMTP所提供的方法,命令如下: -from smtplib impo

Selenium 2自动化测试实战16(多窗口切换)

一.多窗口切换 在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要主机切换到新打开的窗口上进行操作.WebDriver提供了switch_to.window()方法.可以实现在不同的窗口之间切换.以百度和百度注册页为例,在两个窗口之间切换 #coding:utf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys import time driver=webdriver.Chr

Selenium 2自动化测试实战20(操作cookie)

一.操作cookie 有时候我们需要验证浏览器中cookie是否正确,因为基于真实cookie的测试是无法通过白盒和集成测试的.WebDriver提供了操作Cookie的相关方法,可以读取.添加和删除cookie信息.WebDriver操作cookie的方法:get_cookies(): 获得所有cookie信息get_cookie(name):返回字典的key为“name”的cookie信息add_cookie(cookie_dict):添加cookie,“cookie_dict”指字典对象,

Selenium 2自动化测试实战23(窗口截图)

一.窗口截图 WebDriver提供了截图函数get_screenshot_as_file()来截取当前窗口. # -*- coding: utf-8 -*- from selenium import webdriver from time import sleep from selenium.webdriver.common.keys import Keys driver=webdriver.Chrome() driver.get("http://www.baidu.com") dr

Selenium 2自动化测试实战32(Fixtures)

Fixtures fixtures可以形象地把它看作是夹心饼干外层的两片饼干,这两片饼干就是setUp/tearDown,中间的心就是测试用例.除此之外,unittest还提供了更大范围的fixtures,例如对于测试类和模块的fixtures. #test.py #coding:utf-8 import unittest def setUpModule(): print ("test module start >>>>>>>>>>&q

Selenium 2自动化测试实战36(更易读的测试报告)

一.更易读的测试报告 1.知识点:python的注释. 1.一种叫comment,为普通的注释2.另一种叫doc string,用于函数,类和方法的描述.在类或方法的下方,通过三引号(""" """或''' ''')来添加doc string类型的注释,这类注释在平时调用的时候不显示,可以通过help()方法来查看类或方法的这种注释. HTMLTestRunner可以读取doc string类型的注释,所以,我们只需要给测试类或方法添加这种类型的