找到 201 篇文章 关于动态规划
473 次查看
我们可以在 Cypress 中实现钩子。Cypress 钩子用于在每个测试之前/之后执行某些操作。一些常见的钩子包括:before – 在 describe 块中执行任何测试之前执行一次。after – 在 describe 块中所有测试执行后执行一次。beforeEach – 在 describe 块中每个 it 块执行之前执行。afterEach – 在 describe 块中每个 it 块执行后执行。示例实现describe('Tutorialspoint', function() { before(function() { // 在 it 块中所有测试之前执行一次 cy.log("Before hook") }) after(function() { ... 阅读更多
143 次查看
下图解释了 Cypress 的工作原理:像 Selenium 这样的自动化工具通过在浏览器外部运行来工作。但是,Cypress 具有不同的架构。它在浏览器内部运行。Cypress 基于服务器 - Node.js。Cypress 与 Node.js 持续交互,它们相互协调工作。因此,Cypress 可用于测试应用程序的前端和后端。因此,Cypress 能够处理 UI 上实时执行的任务,并同时在浏览器外部执行操作。Cypress 与其他测试框架的一些基本区别在于 ... 阅读更多
2K+ 次查看
我们可以在 Puppeteer 中处理框架。html 代码中的框架由 frames/iframe 标签表示。Puppeteer 可以通过从主页面切换到框架来处理框架。要使用框架内的元素,首先,我们必须借助定位器识别框架。contentFrame 方法用于访问框架内的元素。语法const f = await page.$("frame[name='frame-bottom']") const m = await f.contentFrame()让我们看看框架内元素的 html 代码,并获取其中的文本 - BOTTOM。上图中突出显示的标签名为 frame,并且 ... 阅读更多
231 次查看
我们可以使用以下方法在 Puppeteer 中处理标签页:newPage() - 我们可以使用浏览器对象中提供的此方法打开一个新标签页。语法const p = await browser.newPage()close() - 我们可以使用此方法关闭打开的标签页。语法await p.close() close() - 我们可以使用浏览器对象中提供的此方法关闭所有打开的标签页。语法await browser.close()示例代码实现//添加 Puppeteer 库 const pt = require('puppeteer') pt.launch().then(async browser => { //浏览器新页面 const p = await browser.newPage(); //设置浏览器页面的视口 await p.setViewport({ width: 1000, height: ... 阅读更多
8K+ 次查看
我们可以在 Rest Assured 中的请求中传递多个标头。Web 服务在进行服务调用时可以接受标头作为参数。标头以键值对的形式表示。在 Rest Assured 中传递多个标头有多种方法:使用 header 方法以键值格式传递它们。语法 Response r = given() .baseUri("https://tutorialspoint.com/") .header("header1", "value1") .header("header2", "value2") .get("/about/about_careers.htm");使用 headers 方法将它们作为 Map 传递。语法 Map m = new HashMap(); m.put("header1", "value1"); m.put("header2, "value2"); Response r = given() .baseUri("https://tutorialspoint.com/") .headers(m) .get("/about/about_careers.htm");使用 headers 方法将它们作为 List 传递。语法 List h ... 阅读更多
1K+ 次查看
我们可以在 WebdriverIO 中管理 Cookie。Cookie 有助于识别用户。这是一种有效的技术,可以将信息从一个站点会话传递到另一个站点会话,或者在两个连接的网站的会话之间传递。我们可以使用以下方法在 WebdriverIO 中添加、删除和获取 Cookie:browser.setCookies - 用于为当前页面设置单个 Cookie 或多个 Cookie。要为页面设置 Cookie,我们必须首先启动并位于该页面上。语法 browser.setCookies({cookie, cookie.name, cookie.value, cookie.path, cookie.domain, cookie.secure, cookie.httpOnly, cookie.expiry} )这里,cookie 是 Cookie 对象或对象数组,并且 ... 阅读更多
3K+ 次查看
我们可以在 Cypress 中创建 Junit 报告。要安装 JUnit 报告的软件包,请运行以下命令: npm install cypress-junit-reporter --save-dev示例实现 cypress.json{ "reporter": "junit", "reporterOptions": { "mochaFile": "cypress/results/results.xml", "toConsole": true } }如果我们在一次运行中运行多个测试,并希望为各个规范文件生成唯一的报告,则必须在 cypress.json 中的 mochaFile 参数中添加 [hash]。示例实现 cypress.json 以避免覆盖报告{ "reporter": "junit", ... 阅读更多
5K+ 次查看
我们可以在 Cypress 中创建 Mochawesome 报告。Cypress 与 Mocha 捆绑在一起,因此可以为 Mocha 生成的任何报告也可以与 Cypress 一起使用。Mochawesome 报告Mochawesome 报告是 Cypress 中最重要的报告之一。要安装 mochawesome,请运行以下命令: npm install mochawesome --save-dev要安装 mocha,请运行以下命令: npm install mocha --save-dev要合并 mochawesome json 报告,请运行以下命令: npm install mochawesome-merge --save-dev安装后,所有这些软件包都应该反映在 package.json 文件中。要将多个报告合并到一个报告中,请运行以下命令: npm run combine-reports在 cypress.json ... 阅读更多
283 次查看
Cypress 数据驱动测试是在 fixture 的帮助下实现的。Cypress fixture 用于维护和保存自动化测试数据。fixture 保存在 Cypress 项目的 fixtures 文件夹(example.json 文件)中。它基本上可以帮助我们从外部文件获取数据输入。Cypress fixture 文件夹可以包含 JSON 或其他格式的文件,数据以“键:值”对的形式维护。所有这些测试数据都可以被多个测试使用。所有 fixture 数据都必须在 before 钩子块中声明。语法cy.fixture(测试数据路径) cy.fixture(测试数据路径,编码类型) ... 阅读更多