zoukankan      html  css  js  c++  java
  • (原创)Python 自动化测试框架详解

    自己折腾了一个python的自动化测试框架,梳理了一下流程,简单分享一下。

    项目背景

    B/S架构,进行用户界面的自动化测试

    工具选择

    python开发的自动化测试框架,足够灵活,可以随时根据需求进行变更,易于维护

    框架思路(unittest)

    采用数据驱动的设计,将数据分层出来,与业务逻辑剥离,测试人员专注测试用例,不用关注代码,提高了测试效率

    测试框架介绍

    测试工程的结构如下: 

    Data目录

    存放涉及业务的资源,例如上传图片场景的图片资源

    Driver目录

    存放浏览器驱动文件

    Excel目录

    存放测试用例(重要)

    4个sheet分页,如下:

    PageElements分页                 –存储页面元素的关键字定位信息 

    TestConfig 分页               --配置信息 

    TestSuite 分页                 --测试用例标题 

    TestSteps 分页                --测试用例的执行步骤 

    Package目录 

    封装的方法简介

    assertUtil.py           --断言

                     assert_equal                    """预期结果和实际结果 相等"""

          assert_prompt                 """页面提示信息"""

          …

    base.py                --涉及系统的信息(暂时不用)

                       base_get_hostname     """获取本机电脑名"""

                       base_get_ip                 """获取本机ip"""
                       …

    browserUtil.py      --浏览器的操作

          browser_title                """获取当前浏览器标题"""

                     browser_url                  """获取当前浏览器URL"""

                     …

    excelUtil.py          --excel文件的操作

                       excel_open               """打开excel文件(xls)"""

                       excel_sheet              """指定sheet页面"""

                       excel_cell_data          """获取指定单元格内容"""

                       …

    keysUtil.py         --键盘操作

    location.py         --封装页面元素定位

    login.py             --登录业务

    objectMap.py     --关键字映射

                       ob_key_input       """根据关键字input执行页面元素查找"""

                       ob_key_click        """根据关键字click执行页面元素查找"""

                       …

    util.py               --通用场景

                       ut_highlighted     """元素高亮"""

          …

    Picture 目录 

    存放用例执行的报告

    Test_case 目录 

    存放测试用例执行脚本

    Config.py

    存储常量、配置信息之类的信息

    PageElements.py 

    存储页面元素信息

    例如登录页面的3个控件: 

    "登录-输入用户名"                                                 --表示用户名输入框

    "input>css>input[placeholder='请输入账号']"        

    Input                                                                 –定义的关键字

    Css                                                                   –元素定位方式

    input[placeholder='请输入账号']                             --元素定位表达式

    测试用例执行的流程图:

    步骤1:

    执行TestCase_UI.py脚本,用例启动 

    步骤2:

    读取excel目录下测试用例(*.xls)

    TestConfig分页:

    获取浏览器启动类型              --启动相应浏览器

    获取URL地址                      --打开URL地址

     

    步骤3:

    读取TestSuite分页:

    逐行读取测试用例执行标识,标识为“yes”表示执行该条用例,为“no”跳过该用例 

    获取“测试用例序号”

    步骤4:

    读取TestSteps分页:

    按照“测试用例序号”读取测试用例执行步骤

    例如VDT_WDGZT_001用例,存在4个步骤,逐行读取“测试步骤描述”

    步骤5:

    读取PageElements分页:

    按照“测试步骤描述”读取关键字、页面定位元素、页面元素定位表达式 

    按照关键字、页面定位元素、页面元素定位表达式 定位到页面元素执行相应操作

    例如如下3个步骤:

    在输入框中输入“搜索资源”

    单击搜索按钮

    执行检查点操作

    注意:

    每个步骤执行完毕,根据执行的情况在测试用例中回写“测试结果”

    例如“我的工作台”步骤执行成功,在TestSuite分页,“测试结果”填写“用例步骤执行成功”

    相应的在TestSteps分页,测试用例1,的“测试结果”填写“用例执行成功” 

    如果用例步骤执行失败

    例如“公共-登录用户名称检查” 步骤执行失败,在TestSuite分页,“测试结果”填写“用例步骤执行失败”,“页面截图”填写失败截图的路径 

    相应的在TestSteps分页,测试用例1,的“测试结果”填写“用例执行失败” 

    测试用例步骤出现失败的情况,则不再执行该用例的剩下的步骤,开始执行下一个测试用例

    步骤6:

    一条测试用例执行完毕,重复执行步骤3、4、5,直至全部测试用例执行完毕

    步骤7:

    用例执行完毕,输出测试报告,报告详情:

     

    测试用例执行日志

    例如在测试用例中勾选2个用例执行,执行日志如下: 

  • 相关阅读:
    The Mac Application Environment 不及格的程序员
    Xcode Plugin: Change Code In Running App Without Restart 不及格的程序员
    The property delegate of CALayer cause Crash. 不及格的程序员
    nil localizedTitle in SKProduct 不及格的程序员
    InApp Purchase 不及格的程序员
    Safari Web Content Guide 不及格的程序员
    在Mac OS X Lion 安装 XCode 3.2 不及格的程序员
    illustrate ARC with graphs 不及格的程序员
    Viewing iPhoneOptimized PNGs 不及格的程序员
    What is the dSYM? 不及格的程序员
  • 原文地址:https://www.cnblogs.com/titan5750/p/6961360.html
Copyright © 2011-2022 走看看