- python 3
- selenium 3.13.0
- chromedriver
- HTMLTestRunner
说明:
selenium只需要再python环境下使用pip install 名称即可进行对应的安装。 安装完成后可使用pip list查看自己的安装列表信息。
chromedriver:版本需和自己的chrome浏览器对应,下载地址。 作用:对chrome浏览器进行驱动。
HTMLTestRunner:HTMLTestRunner是Python标准库的unittest模块的一个扩展。它生成易于使用的HTML测试报告。
2|0项目结构
项目主要包括以下几个部分
3|0 测试实例
import time,os
'''
可以配置全局参数,
'''
project_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#浏览器驱动存放路径
chrome_driver_path = project_path + '\\driver\\chromedriver.exe'
# if __name__=='__main__':
# test1 = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)[0]), '.'))
3|1testcase:演示百度搜索
# coding=utf-8
'''
Created on 2016-7-22
@author: Jennifer
Project:登录百度测试用例
'''
from selenium import webdriver
import unittest, time
class BaiduTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30) #隐性等待时间为30秒
self.base_url = "https://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(3)
title=driver.title
self.assertEqual(title, u"unittest_百度搜索")
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
测试用例中的相关说明:
- setup():每个测试函数运行前运行
- teardown():每个测试函数运行完后执行
- setUpClass():必须使用@classmethod 装饰器,所有test运行前运行一次
- tearDownClass():必须使用@classmethod装饰器,所有test运行完后运行一次
3|2测试用例执行runtest.py
使用HTMLTestRunner执行测试用例,并生成测试报告。
# conding :utf-8
import unittest
#构建测试集,包含src/testsuite目录下的所有以test开头的.py文件
suite = unittest.defaultTestLoader.discover(start_dir='测试用例存放的文件夹',pattern='test*.py')
if __name__=='__main__':
runner=HTMLTestRunner.HTMLTestRunner(stream=fb,title=u'邮件报告的描述',description=u'测试Team')
runner.run(suite)