自己折腾了一个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个用例执行,执行日志如下:

转载于:https://www.cnblogs.com/titan5750/p/6961360.html

(原创)Python 自动化测试框架详解相关推荐

  1. WebDriver自动化测试框架详解

    webDriver自动化测试框架详解 一. 简介 WebDriver API相对于Selenium Remote Control API来说,虽然同样是控制浏览器,但它的编程接口更加简洁 WebDri ...

  2. python 语音识别 windows_对Python 语音识别框架详解

    如下所示: from win32com.client import constants import os import win32com.client import pythoncom speake ...

  3. pytest自动化测试框架详解+mark标记+fixture夹具

    介绍 pytest是python的一种单元测试框架,同自带unittest框架类似,功能,效率更强大 特点: 1. 非常容易上手,入门简单,丰富的文档 2. 支持参数化 3. 执行测试用例的过程中,跳 ...

  4. 自动化测试框架详解【2022】

    测试技术的发展 互联网发展风起云涌的几十年,背后是计算机技术的更新迭代,软件开发经历了c.php.java.python.go等语言百家争鸣,在软件测试领域同样是长江后浪推前浪,白盒.自动化.持续集成 ...

  5. selenium-python自动化测试框架详解

    自动化测试框架 项目自动化测试框架设计为4层 1.基础层(通用层) 基础层: 将通用,重复性比较高的代码封装到这里. 写通用的代码的. 其他3层想要的话,就可以直接调用. 例如: 读取测试数据的代码, ...

  6. 【腾讯优测月刊】安卓主流自动化测试框架详解与实践

    导语: 随着移动应用发布周期越来越紧凑.安卓品牌机型/屏幕/系统版本等碎片化日益严重,移动测试工程师的工作量日益剧增.自动化测试or手工测试?这个前些年争执不休的话题,近年来随着云测试平台的崛起似乎已 ...

  7. python+selenium自动化测试框架详解,我就讲一遍

    目录 前言 1.测试框架分层设计 2.测试框架目录结构 3.编写用例方法 4.测试结果展示 前言 本文整理归纳以往的工作中用到的东西,现汇总成基础测试框架提供分享. 框架采用python3 + sel ...

  8. uft怎么做app自动化测试_UFT/QTP自动化测试框架详解

    前言 很多从事测试的朋友都会接触到自动化测试或要求有自动化测试的技能,自动化测试已成为测试行业发展的趋势.自动化测试的工具有很多且各有所长,UFT(QTP)是最流行的测试工具之一,因此很多公司在招聘时 ...

  9. python scrapy框架详解_Python爬虫知识点四--scrapy框架

    一.scrapy结构数据 解释: 1.名词解析: o 引擎(Scrapy Engine) o 调度器(Scheduler) o 下载器(Downloader) o 蜘蛛(Spiders) o ...

最新文章

  1. AI一分钟 | 谷歌员工对中国版搜索引擎提出抗议;华为麒麟980将于本月底发布...
  2. 通过代码动态创建IIS站点
  3. 在centos6.5安装MariaDB(mysql)
  4. 第七章-NoSQL数据库
  5. GDCM:目录条目的测试程序
  6. android深度探索 HAL及驱动开发 第八章
  7. 飘刃 0.1.1 发布,速度碾压 Vue-CLI 的轻量级 Vue 项目构建工具
  8. Burp Suite —— 验证码识别、切换IP
  9. Python的m3u8下载器源码
  10. 计算机设计漫画图片,漫画人物设计电脑版
  11. MATLAB画雷达图(四行代码)
  12. VirtualBox的vmdk文件压缩
  13. 技术总监的日常工作,看下你具备几条
  14. uniapp自建数字键盘
  15. 大学计算机编程学哪些科目,大学计算机课程学习路线应该是怎么样的呢?
  16. 创建Mac的shell命令文件(xxx.sh)
  17. 百度云网盘资源高速下载免登录网页版教程分享
  18. 【今日CV 计算机视觉论文速览 第128期】Mon, 10 Jun 2019
  19. python计算圆柱体的表面积和体积_java设计:问题是编写程序计算圆柱体的体积和表面积...
  20. 徐敏 计算机科学教育,计算机学院举办梦想公开课暨2019年暑期社会实践动员大会...

热门文章

  1. UVM中factory机制的使用
  2. POJ 1830.开关问题(高斯消元)
  3. 整数输入有理循环小数 1/7 = 0.142857142... 是个无限循环小数。 任何有理数都可以表示为无限循环小数的形式。 本题目要求即是:给出一个数字的循环小数表示法。...
  4. 向“3+1” SQLServer2008集群增加磁盘
  5. T-SQL语句之创建、修改、删除数据库
  6. 奇偶个数 中国大学生mooc 翁恺 C语言
  7. Scikit-learn机器学习算法库代码实践
  8. 相同MAC地址,相同IP的两天电脑为什么可以同时上网互不影响(转自Nothel的blog)
  9. matlab双轴坐标系对齐0,MATLAB双轴坐标图的画法(详细)
  10. imwrite函数 matlab_用matlab做一个脉动磁势分解的动画