zoukankan      html  css  js  c++  java
  • python+selenium自动化框架

    ---恢复内容开始---

    主要使用的模块:

    1. selenium/webdriver模块(须准备Chrome驱动),主要用于调用浏览器实现自动点击。
    2. unittest模块,主要用于整合测试用例。
    3. xlrd模块,主要用于调用Excle获取测试数据。
    4. HTMLTestRunnerCN模块,主要用于生成测试报告。

    框架分层思路:

    • 常用函数层
    • 测试数据层
    • 测试元素层
    • 测试用例层
    • 测试结果层

    详细解释层级划分:

      一、常用函数层:主要写常用的一些类,方便后面调用,如:selenium调用浏览器、读取URL的EXCEL、读取用户数据的EXCEL等

      二、测试数据层:主要存放一些用户数据/URL/测试数据等到EXCEL中方便后续调用 我这里存放的主要有:

    1. 测试网站的URL。
    2. 项目中不同权限用户的用户名和密码
    3. 常用配置文件信息

      三、测试元素层:主要存放一些较长的Xpath和Css定位路径,使后续脚本简洁

      四、测试用例层:主要使用unittest模块 创建测试用例:

    class Test(unittest.TestCase):
        def setUp(self):
            self.flag = 1
            self.ca = function.OpenChrome()
            self.br = function.OpenChrome().open()
            self.xpath = element.Element()
            self.eid = element.ID()
            self.css = element.Css()
            self.temp = function.Openurl()
            self.br.maximize_window()
    #以上为定义unittest类,并在setUp中添加前置条件
    
            def test_登录用户(self):...
            def test_xxx(self):...
            def test_xxx(self):...
            def test_xxx(self):...
            def test_xxx(self):...
    #以上为使用test__xx函数逐个创建测试用例
    
        def tearDown(self):
            self.assertEqual(self.flag,1,msg="用例执行失败")
            self.br.close()
    #以上为添加后置条件,如:断言,关闭浏览器等

      五、测试结果层:主要使用HTMLTestRunnerCN模块生成测试报告:

        filepath = '../result/Yunque_result.html'
        fp = open(filepath,'wb')
        runner = HTMLTestRunnerCN.HTMLTestReportCN(stream=fp,title='xx测试报告',tester='测试人员',description = '报告中描述部分')
        runner.run(suite)

     测试结果如下图:

  • 相关阅读:
    反向代理实例
    nginx常用命令和配置
    nginx的安装
    Can Live View boot up images acquired from 64bit OS evidence?
    What is the behavior of lnk files?
    EnCase v7 search hits in compound files?
    How to search compound files
    iOS 8.3 JB ready
    Sunglasses
    现代福尔摩斯
  • 原文地址:https://www.cnblogs.com/zhangzimo/p/11344706.html
Copyright © 2011-2022 走看看