目标

  组内任何人都可以进行自动化测试用例的编写

  完全分离测试用例和自动化测试代码,就像写手工测试用例一下,编写excel格式的测试用例,包括步骤、检查点,然后执行自动化工程,即可执行功能自动化测试用例,包括测试结果、测试报告。

  任何一台安装了JDK环境的windows机器都可以直接运行,不必考虑运行环境的问题。

  整理了一下目前使用的自动化测试框架,基于Selenium WebDriver + python,关键字驱动,简单总结一下。

自动化工程:

driver 目录            ----浏览器驱动(支持chrome、IE浏览器)

data目录                     ----上传场景使用的图片(具体业务相关)

Picture目录               ----测试用例失败截图

TestCase_UI.exe                 ----主程序(使用pyinstaller打包发布)

Test.xls                         ----测试用例(重点关注)

测试用例(***.xls文件)

包括4个sheet分页,详情如下:

1、PageElements 分页

模块:具体的测试业务模块

页面元素:页面具体操作的元素

例如“我的工作台-搜索输入框”,“我的工作台”就是模块名称,“搜索输入框”就是需要操作的元素

关键字:指的是元素的操作方式

例如文本输入框封装的关键字是input,按钮是click,断言是assert,这个是封装在自动化测试工程中的

页面定位元素:元素定位方式,支持8种定位方式:id、class、name、link…xpath、css

页面元素定位表达式:

例如//*[@id='tip_about_info']/div[2]/span,采用xpath定位

如下的元素(输入框),关键字-input、页面定位元素-id、页面元素定位表达式- plantformSearchInput

二级定位:页面包含多个iframe 时,采用二级定位的方式进行页面元素定位

2、TestConfig 分页

配置信息

Driver:根据填写的数据启动不同的浏览器,支持chrome、IE

URL:测试网址

PageElements:根据填写的数据,读取数据源,支持excel、py

**Report:测试报告的标题,可以定制

3、TestSuite 分页

每行数据表示一个测试用例

测试用例序号:唯一,不能重复

测试用例描述:说明该条测试用例的目的

前置条件:方便用户维护用例,可以为空

操作步骤:同上

预期结果:同上

是否执行:执行标识,yes执行、no不执行

测试结果:测试用例执行结果

4、TestSteps 分页

测试用例的执行步骤

  1、2、3行为登录操作,填写用户名、密码,不用修改

测试用例序号:对应TestSuite分页的测试用例序号,一个测试用例多个步骤,测试用例序号相同

测试模块:业务模块

测试用例步骤描述:对应PageElements分页的“页面元素”列

操作值:主要是文本输入框输入的数据

检查点:测试步骤的检查点,一条用例可包含多个检查点

测试结果:用例步骤执行成功、用例步骤执行失败

一个用例存在多个测试步骤,任意步骤执行失败,不在执行剩下的步骤,直接执行下个测试用例,失败的步骤填写“用例步骤执行失败”

页面截图:用例步骤执行失败的步骤截图

Sheet页面对应关系说明:

TestSuite 分页的测试用例序号对应TestSteps 分页的测试用例序号

PageElements 分页的测试步骤描述对应TestSteps 分页的测试步骤描述

自动化用例执行过程

命令行中直接输入自动化测试工程文件的名称,即可开始测试用例执行,打印具体测试过程。

用例报告

用例执行完成,在report目录中生成html格式的报告,方便jenkins持续集成使用

报告内容如下(可定制)

查看执行结果

TestSuite 分页

TestSteps 分页

Selenium WebDriver + python 自动化测试框架的更多相关文章

  1. selenium webdriver (python) 第二版

    前言 对于大多软件测试人员来讲缺乏编程经验(指项目开发经验,大学的C 语言算很基础的编程知识)一直是难以逾越的鸿沟,并不是说测试比开发人员智商低,是国内的大多测试岗位是功能测试为主,在工作时间中,我们 ...

  2. selenium webdriver (python)2

    selenium webdriver (python) 第二版 前言  对于大多软件测试人员来讲缺乏编程经验(指项目开发经验,大学的C 语言算很基础的编程知识)一直是难以逾越的鸿沟,并不是说测试比开发 ...

  3. selenium webdriver (python)

    selenium webdriver (python) 第一版PDF Posted on 2013-08-30 22:59 虫师 阅读(221) 评论(0) 编辑 收藏 前言 如果你是一位有pytho ...

  4. selenium webdriver (python) 第三版

    感谢 感谢购买第二版的同学,谢谢你们对本人劳动成果的支持!也正是你们时常问我还出不出第三版了,也是你们的鼓励,让我继续学习整理本文档. 感谢乙醇前辈,第二版的文档是放在他的淘宝网站上卖的,感谢他的帮忙 ...

  5. 【转】推荐4个不错的Python自动化测试框架

    之前,开发团队接手一个项目并开始开发时,除了项目模块的实际开发之外,他们不得不为这个项目构建一个自动化测试框架.一个测试框架应该具有最佳的测试用例.假设(assumptions).脚本和技术来运行每一 ...

  6. 【转】Selenium WebDriver + Python 环境

    转自:http://www.myext.cn/webkf/a_11878.html 1. 下载必要工具及安装包 1.1 [Python开发环境] 下载并安装Python 2.7.x版本 下载地址:ht ...

  7. Selenium WebDriver + Python 环境配置

    1.   下载必要工具及安装包 1.1.[Python开发环境] 下载并安装Python 2.7.x版本(当前支持2.x版本,不要下载最新的3.X的版本因为python3并非完全兼容python2) ...

  8. selenium webdriver testng自动化测试数据驱动

    selenium webdriver testng自动化测试数据驱动 selenium webdriver testng自动化测试数据驱动 一.数据驱动测试概念 数据驱动测试是相同的测试脚本使用不同的 ...

  9. 杂项-自动化测试工具:Selenium(浏览器自动化测试框架)

    ylbtech-杂项-自动化测试工具:Selenium(浏览器自动化测试框架) Selenium 是一个用于Web 应用程序测试的工具.Selenium 测试直接运行在浏览器中,就像真正的用户在操作一 ...

随机推荐

  1. MongDB系列(一):使用node.js连接数据库

    1.首先启动mongodb数据库服务器 2.创建app.js,代码如下: /** * Created by byzy on 2016/8/18. * node.js 连接 mongodb实例 */ / ...

  2. 第一个 lua 程序

    第一个 lua 程序 lua 提供一个交互式编程模式, 直接在命令行输入 lua 开启 $ lua > -- 此处可以输入 lua 程序 lua 脚本执行时的 2 种方式 lua + lua 脚 ...

  3. Linux基础(7)

    Linux 基础(7) 一.内存的监控(free) free -m 以单位为MB的方式查看内存的使用情况(free命令读取的文件是/proc/meminfo) total:是指计算机安装的内存总量 u ...

  4. 基于R树索引的点面关系判断以及效率优化统计

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在之前的博客中,我分别介绍了基于网格的空间索引(http:// ...

  5. web开发中,post与get的区别

    区别: 1.Get是从服务器上获取数据,Post是向服务器传送数据. 2.Get是把参数数据队列加到提交表单的Action属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.Post是 ...

  6. SQL中LEFT JOIN 和 inner join 的区别

    student表 sc 表 首先where条件a.Sid = b.Sid 查询 SELECT * FROM student a,sc b WHERE a.Sid = b.Sid GROUP BY a. ...

  7. iOS 使用 UIMenuController 且不隐藏键盘的方法

    iOS 使用 UIMenuController 且不隐藏键盘的方法 在键盘显示的时候使用 UIMenuController 弹出菜单,保持键盘显示且可输入的状态. 实现方法有 修改响应链(推荐) 遵循 ...

  8. OC中Foundation框架之NSDictionary、NSMutableDictionary

    NSDictionary概述 NSDictionary的作用类似:通过一个key ,就能找到对应的value 同样 NSDictionary是不可变的,一旦初始化完毕,里面的内容就无法修改 NSDic ...

  9. Ajax与Pjax请求在服务端是如何识别的

    我在后台处理ajax和一般的网页请求时,一般是需要额外加个参数进行区分的.比如使用get参数的is_ajax=1,后台判断有is_ajax=1成立时,表明该请求是ajax请求,遂可区分处理.我正在使用 ...

  10. tpcc-mysql安装

    1.因为我的虚拟机是centos 7 min版本,所以先得安装gcc gcc++: http://mirror.centos.org/centos/7/os/x86_64/Packages/   rp ...