首页 > 其他分享 >WEB自动化-框架-关键字封装

WEB自动化-框架-关键字封装

时间:2023-08-08 17:34:41浏览次数:33  
标签:WEB 封装 函数 文件 py 关键字 conftest pytest

所谓的关键字驱动,本质就是函数封装的过程。 ⾃动化当中的封装⽬的是:拆分重复的⾏为代码和测试数据,增加可维护性和复⽤性   对于某些用例都需要执行的功能,比如登陆、切换环境、登陆后进入大模块等。像这样的前置功能或者后置功能写到一个用例里面,其他用例就不能使用了。所以需要配置文件,管理通用的前置操作,类似于通用关键字。pytest中可以使用conftest.py实现。  

conftest.py名称固定,pytest默认读取
conftest.py 和运行的用例要再一个package下,用例可以放进最顶级的package下的子package下面。保证conftest.py文件在最外层的package下就可以了。
pytest可以自动找到该文件,读取里面的函数。
目录结构如下:

 1 project
 2 |
 3 └───folder
 4 |   |    __init__.py
 5 │   │   conftest.py
 6 │   │   test_one.py
 7 │   └───subfolder
 8 |        |   __init__.py
 9 │       │   test_two.py
10 │       │   
11 │       │   ...
12 ————————————————
13 版权声明:本文为CSDN博主「搬个小板凳儿」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
14 原文链接:https://blog.csdn.net/qq_45731111/article/details/107839185

运行test_two.py文件,可以读取到folder文件夹下conftest.py定义好的前置、后置方法。
运行test_one.py文件,可以读取到folder文件夹下conftest.py定义好的前置、后置方法


权声明:本文为CSDN博主「搬个小板凳儿」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_45731111/article/details/107839185

  • conftest.py 测试用例的一些fixture配置
  • pytest.ini 它是pytest的主配置文件,可以改变pytest的默认行为
一般操作方法是结合 conftest.py文件+testcase+keywords文件+main.py文件   示例如下: 新建conftest文件,创建函数,配置浏览器打开的前置和后置操作,使用pytest的@pytest.fixture()装饰器把browser函数的driver当作传参,传递给后面的keyword使用

 然后创建keyword的package,创建keyword文件,创建关键字的驱动函数,用于给测试 用力testcase调用

 创建testcase目录及文件,这里是test_case_01

引入pytest,引入keyword关键字函数,BY方法

这里用 小写的xpath,而不是By.XPATH是因为BY的源码中By.XPATH=xpath,其他定位方式也一样

 这里的测试用用例直接就创建函数,传参为browser函数,browser函数的return是driver

实例化关键字函数,wk=WebKeys关键字函数,传入browser

然后调用关键字函数WebKey里的open\locator函数完成用例

最后创建main文件执行测试用例

 

思想方法:1、先优化底层代码

      2、对业务模块封装

      3、执行

标签:WEB,封装,函数,文件,py,关键字,conftest,pytest
From: https://www.cnblogs.com/gezirui/p/17614964.html

相关文章

  • 【计算机网络】WebSocket 是什么原理?为什么可以实现持久连接?
    一、WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接),循环连接的不算)首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是Websocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的......
  • 二分答案,二分搜索,封装
    namespacebinarySearch{ //最后一个小于等于 template<typenameT> T*binarySearchLastSmall(T*l,T*r,intkey){ while(l+1<r){ T*mid=l+(r-l)/2; if(*mid<=key)l=mid; elser=mid; } returnl; } //最后一个小于 template<typenameT>......
  • WebDAV之π-Disk派盘 + Evermusic
    Evermusic:iPhone或iPad的音乐播放器和下载器。音频均衡器,低音增强器,ID3标签编辑器,播放列表管理器。支持最流行的音频格式:MP3,AAC,M4A,WAV,AIFF,M4R。有了这个程序,您可以创建自己的音乐流媒体服务。只需将您的音乐库移至云服务,然后直接从那里收听音乐。您现在可以在线上获取所有音乐,并且......
  • json web token(jwt)详解
    1.jsonwebtoken是什么?JSONWebToken(JWT)是一个开放标准(RFC7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。 2.什么时候你应该用JSONWebTokens下列场景中使用JSONWebToken是......
  • 使用Blazor构建现代的Web界面
    当谈到构建现代的Web界面时,Blazor已经成为一个备受关注的技术。Blazor是一个由微软开发的.NET平台上的Web框架,它允许您使用C#编程语言来构建交互式、现代化的前端应用程序。在本篇博客中,我们将探讨如何使用Blazor来构建现代的Web界面,并附上一些示例代码来帮助您入门。......
  • 利用uplugin对比Webpack和Rollup插件系统
    本文由华为云云岭团队松塔同学分享~江湖上一直流传一种说法:Rollup的插件系统设计,相比与webpack,要更加科学顺手。(网络上对webpack插件编写的吐槽不计其数)Talkischeap,本文基于unplugin这个三方库来对比研究一下二者的插件系统。Unplugin是一个插件编写工具,它可以让开发者用......
  • web QQ 用到的技术
    Project HomeDownloadsWikiIssuesSourceSummary Updates PeopleProjectInformationActivityLowProjectfeedsCodelicenseNewBSDLicenseContentlicenseCreativeCommons3.0BYLabelsjavascript,js,ajax,webapp,......
  • 免费获取最新WebStorm激活码,永久激活WebStorm教程
    分享的WebStorm2023.2最新激活注册码,可免费永久激活,亲测有效,下面是详细文档哦~申明:本教程WebStorm激活码收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版!PS:本教程最新更新时间:2023年08月08日~前言前端开发工具中,有小伙伴们......
  • web开发----jsp中通用模版的引用 include的用法
    web开发中常常会有一些代码需要多个页面使用,比如banner nav导航 还有footer等.ASP.NET开发中有母版页的说法,也就是写一些通用的模版页,然后其他页面可以引用。 jsp中 当然也有这样的用法 也就是include的用法 两种用法一种是说明标签<%@include file="xxx.jsp"%>,......
  • vs安装web环境遇到的问题-----调试器dll msdbg2.dll 未正确安装
    首先,你要找到msdbg2.dll。一般就在%CommonProgramFiles%\MicrosoftShared\VS7Debug”目录下。找找先,实在不行搜索吧;如果没有直接下载一个,有的也需要执行以下操作:msdbg2.dll文件拷贝一份到windows/system32目录下,然后在运行中regsvr32msdbg2.dll,重启vs即可。......