python+selenium自动化测试框架搭建
一个人学习不如和大家一起学习,群里有学习资料,欢迎你加入软件测试交流群,群号:1062843742。
环境及使用软件信息
- python 3
- selenium 3.13.0
- chromedriver
- HTMLTestRunner
说明:
selenium只需要再python环境下使用pip install 名称即可进行对应的安装。 安装完成后可使用pip list查看自己的安装列表信息。
chromedriver:版本需和自己的chrome浏览器对应,下载地址。 作用:对chrome浏览器进行驱动。
HTMLTestRunner:HTMLTestRunner是Python标准库的unittest模块的一个扩展。它生成易于使用的HTML测试报告。
项目结构
项目主要包括以下几个部分
测试实例
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]), '.'))
testcase:演示百度搜索
# 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运行完后运行一次
测试用例执行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)