• 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)
  • 相关阅读:
    angularJS---初识指令
    Bootstrap ACE后台管理界面模板-jquery已整理
    memcached和redis的区别和应用场景
    微信开发,公众号支付及微信扫描支付各自使用的密码分别来自哪里
    微信 redirect_uri参数错误 正确的处理
    jquery jsonp实现跨域
    php 常用的好函数(持续更新)
    pre 随变化的样式
    CSS 居中 可随着浏览器变大变小而居中
    2017.03.02-2017.09.28 日常随笔
  • 原文地址:https://www.cnblogs.com/si-dian/p/13177970.html
Copyright © 2020-2023  润新知