Selenium WebDriver + python 自动化测试框架

 目标

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

  完全分离测试用例和自动化测试代码,就像写手工测试用例一下,编写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 分页

 

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372300.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql游戏减少积分活动图_plantuml-绘制状态图和活动图和部署图​

背景状态图:对象的所有状态,以及基于事件发生的状态改变的过程;活动图:用例的工作流程;部署图:系统的软硬件物理体系结构;状态图基本语法元素语法说明开始和结束状态[*]标识开始和结束状态箭头-…

windows中当你的键盘无法使用时我们可以用另一种方法哦

1.使用WinR打开cmd窗口 2.输入osk回车就出现了一个虚拟的小键盘啦,当你的键盘坏掉后非常实用哦 转载于:https://www.cnblogs.com/qianzf/p/6780496.html

NetBeans 7.2引入了TestNG

代码生成的优点之一是能够查看如何使用特定的语言功能或框架。 正如我在《 NetBeans 7.2 beta:更快,更有用》一文中所讨论的那样, NetBeans 7.2 beta提供了TestNG集成 。 除了对该功能的单一引用之外,我在该帖子中没有进一步阐述&…

Javascript模块化编程(三):require.js的用法

一、为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载。下面的网页代码&…

几万条数据的excel导入到mysql_【记录】2万多条数据的Excel表格数据导入mysql数据库...

主题刚开始的时候做了两个小方案!第一个是直接Excel处理完导入,但是这个导入的话虽然简单出错率很大!第二个是想直接用php做个小程序直接导入数据,但是想了想2万条数据处理,百分之百浏览器会一直转,最后不知…

JDeveloper中的Java反编译器

Java Decompiler是一个独立的图形实用程序,显示“ .class”文件的Java源代码。 下面是Java Decompiler程序的快照 您可以从这里下载该程序 我将说明如何将此程序用作Jdeveloper中的外部工具 Java Decompiler和Jdeveloper之间的集成 您可以将此程序添加到Jdevelo…

具有Java Kickstart的MongoDB

NoSQL数据库由于其可伸缩性而变得越来越流行。 适当使用时 NoSQL数据库可以提供真正的好处。 MongoDB是使用C 编写的高度可扩展的开源NoSQL数据库。 1.安装MongoDB 您可以根据所使用的操作系统,按照MongoDB官方网站上的说明安装MongoDB,而不会遇到很多麻…

Linux Shell——函数的使用

文/一介书生&#xff0c;一枚码农。 scripts are for lazy people. 函数是存在内存里的一组代码的命名的元素。函数创建于脚本运行环境之中&#xff0c;并且可以执行。 函数的语法结构为&#xff1a; function <function-name> {<code to execute> } 创建函数不需要…

FFmpeg学习2:解码数据结构及函数总结

在上一篇文章中&#xff0c;对FFmpeg的视频解码过程做了一个总结。由于才接触FFmpeg&#xff0c;还是挺陌生的&#xff0c;这里就解码过程再做一个总结。本文的总结分为以下两个部分&#xff1a; 数据读取&#xff0c;主要关注在解码过程中所用到的FFmpeg中的结构体。解码过程中…

JavaFX 2 GameTutorial第4部分

介绍 这是与JavaFX 2游戏教程相关的六个部分系列的第四部分。 如果您错过了第1部分 &#xff0c; 第2部分或第3部分 &#xff0c;我建议您在开始本教程之前仔细阅读它们。 回顾一下&#xff0c;在第3部分中&#xff0c;我为您提供了许多经典街机风格游戏和所使用的不同输入设备…

java构造函数_JAVA的构造函数是怎么写的。万分感谢。路过的请不要嘲笑%_%

展开全部JAVA的构造函数是&#xff1a;SetLocal EnableDelayedExpansionset classpath.for %%c in (lib\*.jar) do set classpath!32313133353236313431303231363533e59b9ee7ad9431333431363030classpath!;%%cset classpath%classpath%;./classes;java com.ham.server.Server。…

C# 中winform的一些属性设置

1 窗体的大小固定住&#xff0c;不能调整其大小 窗体FormBorderStyle 属性设置为 FixedSingle; MaximizeBox 属性设置为false; MinimizeBox 属性设置为 false; 2. 在状态栏中无图标显示 设置为fase即可。 3. 设置窗体的启动位置 方法1&#xff0c; 用代码控制 this.Location …

LiveBos---按钮成下拉

转载于:https://www.cnblogs.com/luhanzhen/p/6802779.html

Solr:创建拼写检查器

在上一篇文章中&#xff0c;我谈到了Solr Spellchecker的工作原理&#xff0c;然后向您展示了其性能的一些测试结果。 现在&#xff0c;我们将看到另一种拼写检查方法。 与其他方法一样&#xff0c;此方法使用两步过程。 相当快速的“候选单词”选择&#xff0c;然后对这些单词…

Django 和 html

下面是对应的形式&#xff0c;自定义的forms 转载于:https://www.cnblogs.com/kilen/p/6804047.html

【Java大系】Java快速教程

感谢原作者&#xff1a;Vamei 出处&#xff1a;http://www.cnblogs.com/vamei Java是面向对象语言。这门语言其实相当年轻&#xff0c;于1995年才出现&#xff0c;由Sun公司出品。James Gosling领导了Java的项目小组。该项目的最初只想为家电设计一门容易移植的语言。然而&am…

[dpdk] 读官方文档(3)

续前节&#xff0c; 测试小程序 1. 想编译测试程序首先需要设置两个环境变量&#xff0c;为什么呢&#xff0c;因为测试程序的Makefile里用了。。。 rpm装了打包好的devel包&#xff0c;这个rpm也会自带这两个环境变量。就是说写第三方程序的时候&#xff0c;习惯上&#xff0c…

逻辑表达式——黑纸白纸

一、问题描述 有A、B、C、D、E五个人&#xff0c;每人额头上都贴了一张黑色或白色的纸条。五人对坐&#xff0c;每人都可以看到其他人额头上的纸的颜色&#xff0c;但都不知道自己额头上的纸的颜色。五人互相观察后&#xff0c; A说&#xff1a;“我看见有三个人额头上贴的是白…

java 1.6u29 下载_jdk1.6 64位下载|JDK 6(Java SE Development Kit)下载6u43 64位官方版_java运行环境 IT猫扑网...

jdk1.6 64位适用于x64的系统安装的java运行环境&#xff0c;Java SE Development Kit6是java开发人员必备的产品&#xff0c;也叫做jdk6&#xff0c;欢迎下载使用。官方介绍适用于您的计算机(windows)的 Java 软件&#xff0c;即 Java Runtime Environment&#xff0c;也称为 J…

ZK 6中的MVVM初探

MVVM与MVC 在上一篇文章中&#xff0c;我们已经看到Ajax框架ZK如何采用CSS选择器启发的Controller来在View中连接UI组件并监听它们的事件。 在此ZK MVC模式下&#xff0c; View中的UI组件无需绑定到任何Controller方法或数据对象。 使用选择器模式作为将View状态和事件映射到Co…