[E2E Test] Python Behave Selenium 一文学会自动化测试

这篇具有很好参考价值的文章主要介绍了[E2E Test] Python Behave Selenium 一文学会自动化测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

本文将使用Python Behave与Selenium,和同学们一起认识自动化测试,并附上完整的实践教程。

项目源码已上传:CSDN 郭麻花 Azure Repo python-behave-selenium

核心概念 

1. 什么是E2E Test

E2E即End-to-end,意思是从头到尾的系统功能测试。它通过编写自动化测试脚本,完全从用户的角度出发,验证系统功能的正确性。

如下图所示,E2E Test相较于Unit Test等等,实现起来需要更多的时间和成本。

[E2E Test] Python Behave Selenium 一文学会自动化测试,软件工程,selenium,自动化测试,软件工程,E2E Test,python behave

2. Python Behave 

Behave是一个强大且开源的Python BDD测试框架,完全支持Gherkin(Feature测试语言)。与我前面介绍过的.NET Specflow测试框架相似,旨在通过自然语言编写测试用例并实现自动化测试。

3. Selenium

Webdriver是一种与实现无关的浏览器协议,每个浏览器都将提供自己的驱动程序,作为WebDriver协议的实现。而外部则可以通过驱动程序提供的接口,来实现自动化操作浏览器。

Selenium 框架通过整合Webdriver实现, 允许用户可以无差别的使用不同的浏览器后端, 实现跨浏览器和跨平台自动化。并且Selenium框架支持Java,Python,C#等多种语言实现。

E2E Test 实践指南

1. 你是否需要E2E Test

自动化测试需要整个团队投入大量的精力。开发人员熟悉每个页面实现,他们需要协助测试人员抓取页面元素,实现某些步骤等;而测试人员则需要与产品等需求方共同编写大量的,基于用户视角的测试用例,并与开发人员一同实现自动化测试步骤。

并且,E2E Test需要干净的测试环境,至少不能影响每次测试用例的执行。这要求我们的软件系统必须具备快速部署,复制的能力。

基于云原生架构的系统是最好的:[GitOps]微服务版本控制:使用ArgoCD 部署Grafana Loki_郭麻花的博客

2.  什么时候需要自动化测试

在产品趋于完善的时候,可以开始E2E Test。在项目早期阶段,推荐使用Unit Test,Integration Test,System Test等来保证软件质量。

E2E Test并不是万能的,也不是要求所有的步骤都必须按照用户角度自动化完成:不鼓励的行为 | Selenium

Python Behave与Selenium

好了,介绍完E2E Test的概念与场景之后,我们来看一下E2E Test的实现过程。环境准备:Python,pip命令;安装behave与selenium。

Behave

BDD测试的概念我这里不再赘述,了解过.NET Specflow BDD Framework - CSDN 郭麻花的博客的朋友会很容易学习Behave框架。

Behave的使用非常简单,我这里介绍下要点:

1. 首先你需要熟悉feature语言: Gherkinstep实现,不懂看这里blog.py - Repos (azure.com)

2. 结合上面链接里的代码,可以看到Behave中的context表示一个贯穿整个测试过程的对象,你可以将步骤中得到的对象或者变量,放入context中,并传递给后面的step。

3. Behave提供了一些Hook函数,如before_feature,after_scenario()等,我们可以通过重写这些Hook方法,在scenario或者feature执行前后,做一些准备或者收尾的工作。Hook函数的使用请看这里:environment.py - Repos (azure.com)

更多Hook函数看这里:Context Attributes — behave documentation

 4. Tag以及Tag的使用看这里:Tag in feature & Tag in running

Selenium

Selenium的使用也是非常简单。同样的,我概括下要点:

  • Selenium支持Edge,chrome,firefox,ie,Safari 等多种浏览器。
  • Selenium支持XPATH, CSS Selector,Id等多种方式查找元素。selectors-example
  • Selenium提供点击,输入,清除,提交和选择,5种基础操作控制页面元素。
  • Selenium可以等待元素达到期望状态。

最重要的是代码设计。例如,我们需要等待页面某个按钮enable,或者等待某段文字刷新出来,这里一定不要使用sleep的方式来等待,而要用Wait element state in selenium

的方式来实现优雅等待,一旦元素达到期望状态,程序会立刻往下执行。

执行Behave测试

可以通过VS Code进行调试behave 测试用例,像我这样:launch.json - Repos (azure.com)

或者直接使用behave命令来运行: behave test\features\blog_test01.feature

我这里为大家实现了一个简单的feature:通过百度查找“CSDN 郭麻花”,并判断他置顶的博客数量是否为“3”。

欢迎大家下载调试:python-behave-selenium - Repos (azure.com)

@fixture.edge
Feature: Blog test 01

  Scenario: I have three pinned blogs
    Given I open "www.baidu.com"
    When I search "CSDN 郭麻花" 
    Then I click the first of results
    When I select the "文章" selection
    Then I can see "3" blogs have been pinned

[E2E Test] Python Behave Selenium 一文学会自动化测试,软件工程,selenium,自动化测试,软件工程,E2E Test,python behave

总结

好的,关于E2E Test以及Python Behave与Selenium的介绍暂时就到这里。文章来源地址https://www.toymoban.com/news/detail-705225.html

到了这里,关于[E2E Test] Python Behave Selenium 一文学会自动化测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【小猫爪】AUTOSAR学习笔记12-功能安全之E2E模块

      从这一节开始,正式步入功能安全专题。这一节先来看一个与Communication Stack强相关的且与功能安全有关的模块,它就是E2E模块。   E2E在AUTOSAR架构中,它被定义成是一个函数库。E2E 可以保护安全相关的数据交换,避免数据交换过程中通信链路造成的错误。E2E通信保护库

    2023年04月25日
    浏览(38)
  • 探索单元测试和 E2E 测试:提升软件质量的关键步骤(下)

    🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入

    2024年01月20日
    浏览(45)
  • Cypress 做 e2e 测试,如何在获得某个 checkbox 后先判断它是否被 check 然后再更改它的状态?

    比如如果这个 checkbox 已经被 check 了,就不做操作,否则将它 check。 我们假设这个 checkbox 的 data-testid 属性是 VendorCodeCheckbox-0-test-id 。Cypress 的代码如下: 注意,对于不同的前端框架,寻找组件的逻辑可能不同。

    2024年02月11日
    浏览(43)
  • 【测试与自动化】介绍-框架-Jest-覆盖率-异步代码-e2e-Vue测试

    了解什么是软件测试,以及自动化方式的测试 什么是软件测试? 定义: 在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 目的: 促进目标鉴定软件的正确性、完整性、安全性和质量。 本质: 其实是对软件的

    2024年02月16日
    浏览(35)
  • 【前沿技术RPA】 一文学会用UiPath实现PDF自动化

    🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。 🐬个人主页:会敲键盘的肘子 🐰系列专栏:UiPath 🦀专栏简介: UiPath在传统的RPA(Robotic process automation)的基础上,增加了See(AI通过计算机视觉阅读用户的计算机屏幕)和Think(通过机器学习来发现

    2024年02月02日
    浏览(63)
  • 如何用Postman做接口自动化测试?一文带你学会

    什么是自动化测试 把人对软件的测试行为转化为由机器执行测试行为的一种实践。 例如GUI自动化测试,模拟人去操作软件界面,把人从简单重复的劳动中解放出来 本质是用代码去测试另一段代码,属于一种软件开发工作,已经开发完成的用例还必须随着被测试对象的改变而

    2024年04月22日
    浏览(37)
  • 接口自动化测试要做什么?一文3个步骤带你成功学会!

    先了解下接口测试流程: 1、需求分析 2、Api文档分析与评审 3、测试计划编写 4、用例设计与评审 5、环境搭建(工具) 6、执行用例 7、缺陷管理 8、测试报告 了解了 接口测试的工作流程 ,那\\\"接口自动化测试\\\"怎么弄?只需要在上篇文章的基础上再梳理下就可以。为更好理解

    2024年02月08日
    浏览(46)
  • 学会自动化必备工具-Selenium-再想着入坑自动化测试吧

    随着近些年IT行业的发展,软件测试人才的需求越来越大,也有很多小伙伴在考虑入坑,而软件测试中,收入相对较高的就是自动化了,所以这次就专门为大家简单介绍下自动化测试的必备工具Selenium。 Selenium是一款基于Web应用程序的开源测试工具 ,直接运行在浏览器中,支

    2024年01月23日
    浏览(56)
  • 零基础学会用Airtest-Selenium对Firefox进行自动化测试

    本文将详细介绍如何使用AirtestIDE驱动Firefox测试,以及脱离AirtestIDE怎么驱动Firefox(VScode为例)。 看完本文零基础小白也能学会Firefox浏览器自动化测试!!! 对于Web自动化测试,目前AirtestIDE支持chrome浏览器和Firefox2种浏览器,关于如何驱动chrome浏览器,之前我们的推文已经做

    2024年02月08日
    浏览(117)
  • 【自动化测试入门】用Airtest - Selenium对Firefox进行自动化测试(0基础也能学会)

    本文将详细介绍如何使用AirtestIDE驱动Firefox测试,以及脱离AirtestIDE怎么驱动Firefox(VScode为例)。看完本文零基础小白也能学会Firefox浏览器自动化测试!!! 对于Web自动化测试,目前AirtestIDE支持chrome浏览器和Firefox2种浏览器,今天我们重点聊一下,如何使用AirtestIDE驱动Firef

    2024年02月07日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包