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个用例执行,执行日志如下: 

  • 相关阅读:
    hdu 1823 Luck and Love 二维线段树
    UVA 12299 RMQ with Shifts 线段树
    HDU 4578 Transformation 线段树
    FZU 2105 Digits Count 线段树
    UVA 1513 Movie collection 树状数组
    UVA 1292 Strategic game 树形DP
    【ACM】hdu_zs2_1003_Problem C_201308031012
    qsort快速排序
    【ACM】nyoj_7_街区最短路径问题_201308051737
    【ACM】nyoj_540_奇怪的排序_201308050951
  • 原文地址:https://www.cnblogs.com/titan5750/p/6961360.html
Copyright © 2011-2022 走看看