外贸长尾关键词挖掘网站关键词排名点击软件网站
news/
2025/9/25 23:50:05/
文章来源:
外贸长尾关键词挖掘网站,关键词排名点击软件网站,wordpress建设企业网站,邯郸建设网站制作目录
前言
1、文件目录
2、安装依赖
3、POM项目实战-案例#xff1a;打开指定页面
目录结构#xff1a;
pages中的代码#xff1a;
cases中的代码#xff1a;
4、解决登录问题
问题#xff1a;
解决方案#xff1a;
获取登录的用户信息#xff08;cookie打开指定页面
目录结构
pages中的代码
cases中的代码
4、解决登录问题
问题
解决方案
获取登录的用户信息cookie
将用户信息cookie填充到context上下文中
3、生成测试报告Allure
下载配置
生成测试报告 前言
python3.8jdk1.8【使用allure生成测试报告时需要使用】【jdk的配置市面上很多我就不说了哈】创建一个普通的python项目即可项目模式pom.--- 先在pages中封装页面再在cases中写用例
1、文件目录
先创建一个py项目建立一下目录 目录说明
auth保存登录cookies信息cases测试用例mocks放置mock的数据todopages存放封装的page页面对象plugins插件conftest.py本地插件全局参数pytest.inipytest的配置文件包含base_url、截图、录屏等 2、安装依赖
例如我安装的依赖
pip install playwright
playwright install
pip install pytest-playwright
pip install pytest-base-url
pip install allure-pytest
先安装这些后面有需要再安装即可
使用命令行自动生成一个文件
pip3 freeze requirements.txt 3、POM项目实战-案例打开指定页面
pom项目的设计模式就是先在pages封装登录页面再去cases写用例
目录结构 pages中的代码
from playwright.sync_api import Page
class ExplorePage():def __init__(self,page:Page):self.page pageself.pub page.locator(.user-icon)def gotoURL(self):self.page.goto(http://localhost:5173/explore)代码解读
__init__函数一般都是元素定位相关的其他函数就是点击呀双击呀输入呀这类函数的封装例如上述代码就是进入页面的这个函数封装
cases中的代码
import timeimport pytest
from pages.explore.explore import ExplorePage
from playwright.sync_api import expect
class TestLogin():pytest.fixture(autouseTrue)def for_each(self,page):self.login ExplorePage(page)self.login.gotoURL()yieldprint(后置操作)def testdemo(self):time.sleep(10)expect(self.login.pub).to_be_visible()print(self.login.pub.count())代码解读
第一个函数for_each()顾名思义就是指在每个case执行之前都会执行。原因是它是由pytest的fixture装饰器修改的并且值是autousetrue这就意味着这个方法会在每个case执行之前自动调用而不需要在测试方法中显式调用for_each这个函数yield之前的部分是在case执行之前运行yield之后的部分只在case执行结束后运行testdemo这个函数就是测试方法了expect函数是playwright提供的函数根据后面的代码可知道这一行代码意思是期望xxx元素是可见的否则会case执行失败count()函数就是获取这个元素在当前页面出现了几次 4、解决登录问题
问题
首先我们需要明确要解决的登录问题是什么
简单的网页 中可以根据获取各个input框我们去让代码输入用户名、密码进而登录。这种实现没有问题但麻烦在每个case都需要在执行之前先去登陆一次实在浪费时间稍微复杂的网页中在你进行登录时是没有办法完全依靠自动化实现的例如会有各种各样的验证码验证文字等当然了非要用自动化也不是完全不可以但有些复杂得不偿失了
解决方案 我们写一个用例让他登录一次然后把登陆后的用户验证信息 保存中文件中在以后的case中我们只需要获取这个文件内容把他自动填充到浏览器上下文中即可~【即使是上面的问题2我们依然可以这么做因为我们可以在这个方法中打断点手动登录后再继续运行代码即可】
获取登录的用户信息cookie
以下是目录 代码
import timefrom playwright.sync_api import sync_playwright
def run(playwright) - None:browser playwright.chromium.launch(channelchrome, headlessFalse)context browser.new_context()page context.new_page()page.goto(http://localhost:5173/explore)time.sleep(10)storage context.storage_state(pathD:/Project/redbook/web-ui/auth/cookie.json)context.close()browser.close()with sync_playwright() as playwright:run(playwright) 代码解读
前面几行就是创建context以及进入指定页面我们在操作时可在time.sleep时间等待打上断点我们手动登录结束后再取消断点继续执行storage这一行就是通过context上下文或者到storage_state的内容并保存到后面路径中指定的文件里
运行结束后即可看到cookie.json文件中已经有值啦~
将用户信息cookie填充到context上下文中 我们在conftest.py文件中操作如下 import pytestpytest.fixture(scopesession)
def browser_context_args(browser_context_args, playwright, pytestconfig):添加context上下文参数默认每个页面加载cookiereturn {storage_state:pytestconfig.rootpath.joinpath(auth/cookie.json),**browser_context_args} 代码解读
session意味着这个fixture将在整个测试回话中只被创建一次设置context上下文中storage_state中的值通过pytestconfig获取到根目录并拼接上括号中的路径中所指的文件内容**browser_context_args: 这是一个解包操作它将传入的browser_context_args字典的所有键值对添加到返回的字典中。这允许测试人员或fixture用户自定义其他浏览器上下文参数并将这些参数与storage_state一起返回 3、生成测试报告Allure
下载配置
下载 Central Repository: io/qameta/allure/allure-commandline/2.13.9
找到zip下载 Windows下直接解压缩并加到bin目录下复制路径打开环境变量 验证是否成功 生成测试报告
命令1:
pytest --alluredir ./report
先批量把所有case执行一遍
如果说有的case搜索不到检查一下文件名是不是text_xxx或xxx_test否则识别不到
命令2:
allure serve ./report 生成测试报告本地的话会自动打开浏览器的如果失败了可能是jdk有问题
也有可能是环境有问题你以管理员身份打开再运行就可以了~
运行 成功后会自动打开本地浏览器 这期先这样啦~
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/917700.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!