python之web自动化测试框架
梳理下搭建web自动化框架的流程:
创建目录:
cases:存放测试用例,unittest框架要求用例名必须以test开头,所以命名test_case.py
test_case.py代码如下:继承unittest.TestCase类下面的方法setupclass(),teardownclass()。然后把用例放进去。每个页面作为一个用例
'''这里写业务的用例 用例要用到page unittest'''
from page.basePage import Page
import unittest class UiTester(unittest.TestCase):#继承unittest.TestCase类下面的方法setup(),teardown()
# def setUp(self):#每条测试用例执行之前,先执行它
# pass
# def tearDown(self):#每条测试用例执行之后,执行它
# pass
@classmethod
def setUpClass(cls):#类里面的函数执行之前,最先执行它(所有用例执行之前,执行一次)
cls.page=Page()#实例化,打开浏览器
cls.page.open()#打开url网页 def test_a_login(self):#这是case,每个页面里的功能点,用例与数据源分离,方便维护
self.page.send_username()
self.page.send_passwd()
self.page.login()
self.assertTrue(self.page.check_login())
def test_b_creatbug(self):
self.page.clickbug() # 进入到bug页面
self.page.mentionbug() # 点击提bug按钮,进入到提bug页面
self.page.selectmodule() # 选择所属模块
self.page.bugtype() # 选择bug类型
self.page.os() # 选择操作系统
self.page.browser() # 选择浏览器
self.page.version() # 选择影响版本
self.page.assignto() # 选择分配人
self.page.deadline() # 选择截止日期
self.page.bugtitle() # bug标题
self.page.context() # bug步骤
self.page.mailto() # 超送人
self.page.file()
self.page.save()
self.assertTrue(self.page.check_creatbug())
@classmethod
def tearDownClass(cls):#类里面的所有测试用例执行之后,最后执行它(所有用例执行之后,执行一次)
cls.page.quit()
lib目录:
pyse.py文件主要存放操作元素的方法比如:click(),send_keys(),double_click(),drag_and_drop()等等
page目录:basepage.py,根据PO思想,将每个页面作为一个类,每个页面的功能点作为这个类的一个函数。将所有页面写出来
在用例文件test_case.py中调用上面的函数,每个页面作为一个用例,调用每个页面的函数
bin:start.py写运行用例的流程:
创建测试集合,找到测试用例,将每个测试用例加到测试集合中,运行用例,产生报告。
from lib.logger import logger
from lib.path import WEBCASEPATH,REPORTPATH
from lib.HTMLTestRunner import HTMLTestRunner
import unittest
from lib.tool import Tool
class Main(object):
def run(self):
Tool().clear_picture()
suite = unittest.TestSuite()
cases = unittest.defaultTestLoader.discover(WEBCASEPATH)
print(cases)
for case in cases:
print(case)
suite.addTest(case)
f = open(REPORTPATH,'wb')#打开一个报告文件
runner = HTMLTestRunner(f,verbosity=1,title=u'测试报告', description=u'用例执行情况:')
runner.run(suite)
f.flush()
f.close()
python之web自动化测试框架的更多相关文章
- 基于Selenium+Python的web自动化测试框架
一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.S ...
- web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架
基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架 by:授客 QQ:1033553122 博客:http://blog.sina.com.cn/ishou ...
- Web 自动化测试框架 sweetest 介绍
项目开源: https://github.com/tonglei100/sweetest 文章转载:https://segmentfault.com/a/1190000011612061 介绍 swe ...
- python+requests接口自动化测试框架实例详解
python+requests接口自动化测试框架实例详解 转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实 ...
- selenium3与Python3实战 web自动化测试框架 ☝☝☝
selenium3与Python3实战 web自动化测试框架 selenium3与Python3实战 web自动化测试框架 学习 教程 一.环境搭建 1.selenium环境搭建 Client: py ...
- selenium3与Python3实战 web自动化测试框架✍✍✍
selenium3与Python3实战 web自动化测试框架 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课 ...
- Windows环境搭建Web自动化测试框架Watir
Windows环境搭建Web自动化测试框架Watir 一.前言 Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将We ...
- python版接口自动化测试框架源码完整版(requests + unittest)
python版接口自动化测试框架:https://gitee.com/UncleYong/my_rf [框架目录结构介绍] bin: 可执行文件,程序入口 conf: 配置文件 core: 核心文件 ...
- 【Python】【Web.py】详细解读Python的web.py框架下的application.py模块
详细解读Python的web.py框架下的application.py模块 这篇文章主要介绍了Python的web.py框架下的application.py模块,作者深入分析了web.py的源码, ...
随机推荐
- 在开发过程中遇到的Oracle的坑及开发技巧
本人与2018年毕业,工作一年多,仍是菜鸟,自毕业以来一直从事java软件开发工作,工作中大部分数据库都是使用的Oracle,碰到的问题总结一下(随时更新). 1.sql中使用group by 分组时 ...
- logrotate+crond日志切割、轮询
logrotate 在工作中经常会有需求去查看日志,无论是通过应用或者系统error日志去查找问题或者通过nginx的访问日志统计站点日均PV.UV.所以体现了日志的重要性,但是通常当业务越来越大的时 ...
- map构造同时初始化
Map<String, Object> mtest = new HashMap<String, Object>(){{put("test","M ...
- SeetaFaceQt:Qt多线程
为什么要做多线程,说个最简单的道理就是我们不希望在软件处理数据的时候界面处于无法响应的假死状态.有些处理是灰常花时间的,如果把这样的处理放到主线程中执行,就会导致软件一条路走到底,要等到处理完才能接收 ...
- OpenCV2基础操作----直线、矩形、圆、椭圆函数的使用
opencv2几个画图函数的调用 要用到几个随机变量: int fr = rand()%frame.rows; int fc = rand()%frame.cols; int b = rand()%2 ...
- 动态改变tableHeaderView的显示隐藏及高度
改变tableHeaderView的高度: UIView *headerView = _tableView.tableHeaderView; headerView.height = 10; 当设置高度 ...
- VUE- 引用视频组件
VUE- 引用视频组件 安装依赖 cnpm install vue-video-player -S cnpm install video.js -S 全局引用: 在main.js中 import Vu ...
- requests.get()///post函数///base64函数
1.requests.get() 一般的用法:r=requests.get(url) 或者是用上session: r=requests.session() r=r.get(url) get()收集的是 ...
- idea创建远程分支
1.先从远程拉取一个完整的分支,master或dev 2.新建一个分支,new,新建的同时checkout 出来 3.把新建的分支push到远程 4.如果新建完分支后写代码了,需要先把代码提交然后一起 ...
- 机器学习分布式框架horovod安装 (Linux环境)
1.openmi 下载安装 下载连接: https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.1.tar.gz 安装命令 1 ...