python+selenium自动化测试框架搭建

一个人学习不如和大家一起学习,群里有学习资料,欢迎你加入软件测试交流群,群号:1062843742。

环境及使用软件信息

  1. python 3
  2. selenium 3.13.0
  3. chromedriver
  4. 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()

测试用例中的相关说明:

  1. setup():每个测试函数运行前运行

  2. teardown():每个测试函数运行完后执行

  3. setUpClass():必须使用@classmethod 装饰器,所有test运行前运行一次

  4. 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)

猜你喜欢

转载自www.cnblogs.com/humiao-0626/p/13177970.html