网站首页 > 技术文章 正文
欢迎留言说出你遇到的问题,在线解答及提供自动化框架源代码。
UItestframework项目目前具有以下功能:
1、对webdriver进行了第二次的简单封装,使用更加方便 public/common/pyselenium.py
2、可以对excel表进行数据读取,完成数据驱动:public/common/datainfo.py
3、具有打印日志的功能,打印在控制台和文件中:public/common/log.py,日志保存在report/log/目录下
4、读取配置文件(.ini文件):public/common/readconfig.py
5、具有发邮件的功能:public/common/sendmail.py
6、生成测试报告:html测试报告的路径:report/testreport/目录下
7、使用了PageObject模式来编写测试脚本
整个项目的目录结构:
├─config 配置文件的目录
│ │ config.ini 存放配置文件
│ │ globalparam.py 重要的全局参数,如log、report的路径配置等
│ │ __init__.py
│ │
│
├─data 测试数据
│ ├─formaldata # 正式环境测试数据
│ └─testdata # 测试环境的数据
│ searKey.xlsx
│
├─public 公共的文件库
│ │ __init__.py
│ │
│ ├─common 封装的公共方法
│ │ │ basepage.py
│ │ │ datainfo.py
│ │ │ log.py
│ │ │ mytest.py
│ │ │ publicfunction.py
│ │ │ pyselenium.py
│ │ │ pyselenium20161107.py
│ │ │ readconfig.py
│ │ │ sendmail.py
│ │ │ __init__.py
│ │ │
│ │
│ ├─pages 使用pageobject模式编写测试脚本,存放page的目录
│ │ │ baiduIndexPage.py
│ │ │ __init__.py
│
├─report 测试报告
│ ├─image 截图目录
│ ├─log 日志目录
│ │ 2018-11-07.log
│ │
│ └─testreport html测试报告目录
│ TestResult2018-11-07_16_15_51.html
│
└─testcase 存放测试用例
│ test_baidu.py
使用说明:
安装响应的库: pip install xlrd,selenium,configparser
1、在config.ini中配置项目路径:project_path
2、测试数据放在data目录下面
3、使用pageobject,写page页面,在测试用例里面调用放在public/pages目录下
4、在testcase目录下面,编写测试用例,可以分模块编写,建相应的目录
5、执行run.py,就可以执行所有的测试用例
6、在report/log里面查看日志
7、在report/testreport里面查看html测试报告
import PySelenium
1、启动浏览器:
启动谷歌浏览器
dr = PySelenium.PySelenium('chrom')
启动远程浏览器比如使用grid施行分布式执行
dr = PySelenium.PySelenium(RChrome','127.0.0.1:8080')
2、在地址栏输入网址:
dr.open('http://www.baidu.com')
3、窗口最大化
dr.max_window()
4、设置浏览器的窗口的大小
dr.set_window(800,500)
5、不清除文本框的内容直接输入值(比如说:进行文件上传时,上传文件的路径,如果清除就会报错):
dr.type('id->su','小石头tester')
6、先清除文本框的内容,然后再输入值(用得很多):
dr.clear_type('name->su','虫师')
7、直接点击元素
dr.click('css->#kw')
8、右键点击元素:
dr.right_click('id->kw')
9、将鼠标移动到一个元素上
dr.move_to_element('clas->btn1.btn-green.btn-search')
10、双击元素
dr.double_click("id->kw")
11、将一个元素拖拽到另外一个元素上
dr.drag_and_drop('id->kw1','id->kw2')
12、根据连接的text来点击(<a href="http://www.baidu.com">百度</a>)
dr.click_text('百度')
13、关闭窗口,driver
dr.quit()
14、执行js脚本
dr.js('script')
15、获取元素的属性
dr.get_attribute("id->su","href")
16、获取元素的文本信息text
dr.get_text('id->su')
17、返回当前页面的title
dr.get_title()
18、返回当前页面的url
dr.get_url()
20、进入frame
dr.switch_to_frame('id->kw')
21、退出frame
dr.switch_to_frame_out()
22、判断元素是否存在
dr.element_exist('id->kw')
23、截图
dr.take_screenshot('file_path')
24、进入最新的table
dr.into_new_window()
25、输入内容并且回车
dr.type_and_enter('id->kw')
26、使用js来点击某个元素
dr.js_click('id->kw')
27、返回原生的webdriver,进行个性化需求
dr.origin_driver()
猜你喜欢
- 2025-05-26 “WinCC 3D组态素材:引领工业自动化领域的可视化新纪元”
- 2025-05-26 前端自动化之利剑--Grunt
- 2025-05-26 gulp前端自动化构建入门指南(一)
- 2025-05-26 前端自动化:全网最火的5大开源图片相似性对比库!
- 2024-09-25 前端开发工具grunt入门指南-自动化构建一个基于node的命令行工具
- 2024-09-25 一张图告诉你移动Web前端所有技术(工程化、预编译、自动化)
- 2024-09-25 「前端自动化」如何使用Node.js实现热重载页面
- 2024-09-25 Web开发中的自动化解决方案,前端利器——JSCompress
- 2024-09-25 Gulp:高效前端自动化构建工具 前端grid
- 2024-09-25 #前端自动化# require.context #前端自动化部署工具
你 发表评论:
欢迎- 613℃几个Oracle空值处理函数 oracle处理null值的函数
- 605℃Oracle分析函数之Lag和Lead()使用
- 593℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 590℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 584℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 578℃【数据统计分析】详解Oracle分组函数之CUBE
- 567℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 559℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- PageHelper - 最方便的 MyBatis 分页插件
- 面试二:pagehelper是怎么实现分页的,
- MyBatis如何实现分页查询?(mybatis-plus分页查询)
- SpringBoot 各种分页查询方式详解(全网最全)
- 如何在Linux上运行exe文件,怎么用linux运行windows软件
- 快速了解hive(快速了解美国50个州)
- Python 中的 pyodbc 库(pydbclib)
- Linux搭建Weblogic集群(linux weblogic部署项目步骤)
- 「DM专栏」DMDSC共享集群之部署(一)——共享存储配置
- 故障分析 | MySQL 派生表优化(mysql pipe)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)