手把手教你写Web自动化测试并生成美观交互的测试报告

news2024/11/20 14:22:29

B站首推!2023最详细自动化测试合集,小白皆可掌握,让测试变得简单、快捷、可靠https://www.bilibili.com/video/BV1ua4y1V7Db

目录

 摘要:

Web自动化测试

Allure测试报告

总结


 摘要:

在Web应用程序开发中,自动化测试已经成为了一个重要的环节。通过自动化测试可以大幅度减少人工测试的时间及成本,同时还可以提高测试效率。但是,随着测试用例的增多,手动测试执行和结果统计将日渐繁琐,这就需要有一个好的测试报告工具来辅助测试工作,轻松生成易懂且信息全面的自动化测试报告。

本文将介绍如何使用Python编写Web自动化测试,并且采用Pytest与Allure结合的方法来生成相应的自动化测试报告。

Web自动化测试

对于Web测试,我们通常会使用Selenium WebDriver进行调用,其实现方式如下:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('http://example.com')

以上代码中,我们使用webdriver.Chrome()函数打开一个Chrome浏览器窗口,并使用driver.get()方法访问目标网站。

对于测试用例的编写,我们则可以采用pytest框架来管理和组织测试代码。例如:

def test_login():
    driver = webdriver.Chrome()
    driver.get('http://example.com')

    username_input = driver.find_element_by_name('username')
    password_input = driver.find_element_by_name('password')
    submit_button = driver.find_element_by_xpath('//button[@type="submit"]')

    username_input.send_keys('testuser')
    password_input.send_keys('testpass')
    submit_button.click()

    assert driver.current_url == 'http://example.com/home'

以上代码中,我们编写了一个名为test_login()的测试用例。在测试用例中,我们首先使用webdriver.Chrome()函数打开浏览器窗口,并使用driver.get()方法访问目标网站;接下来,我们使用find_element_by_name()和find_element_by_xpath()等Selenium API查找页面元素,并使用send_keys()方法模拟用户操作,最终使用断言(assert)方式校验测试结果。

Allure测试报告

Allure是一款高度可定制化的测试报告生成工具,可以通过插件机制轻松地与各种流行的测试框架集成,包括JUnit、TestNG、PyUnit等。Allure将所有测试数据收集到内存中,并根据这些数据生成精美的、交互式的HTML测试报告。

在本文中,我们将使用pytest-allure插件来与Allure集成,具体步骤如下:

  1. 安装pytest-allure插件

    
    pip install pytest-allure-adaptor
  2. 编写测试用例,使用pytest框架执行测试

  3. 执行测试,并生成测试报告

    pytest --alluredir=reports/
  4. 使用allure命令打开测试报告

    allure serve reports/

    通过以上步骤,我们可以轻松地生成易懂且信息全面的Web自动化测试报告,具有良好的可读性和展示效果。

总结

本文介绍了如何使用Python编写Web自动化测试,并且采用Pytest与Allure结合的方法来生成自动化测试报告。同时,本文还向大家展示了一个高度可定制化的测试报告生成工具—Allure,通过与各种流行的测试框架集成,能够实现清晰简明直观、易于管理的测试报告输出。当然,我们也要在实际应用中,根据具体业务需求灵活采用各种技术和工具,以便更好地完成测试任务。

希望本文对您的学习和实践有所帮助,如果您在使用过程中有任何疑问或建议,欢迎留言交流!

自动化测试学习步骤结构图:

自动化测试福利:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/502199.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ICV: 全球QRNG产业规模在2030年有望突破200亿美元

近日,专注于前沿科技领域的国际咨询机构ICV发布了《全球量子随机数发生器的产业研究报告》,从多个角度对QRNG的市场进行预测。 QRNG 是解决与随机数相关的问题(例如密码解决方案)的重要硬件来源。 QRNG 是随着量子物理技术的发展…

DJ4-4 基本分页存储管理方式

目录 离散分配的基本概念 4.4.1 分页存储管理基本思想 1、分页存储管理的基本方法 2、页面与物理块 3、实现分页存储管理的数据结构 4、实现分页存储管理的地址结构 5、分页存储管理的逻辑地址表示 4.4.2 地址变换机构 1、基本的地址变换机构 2、具有快表的地址变换…

Alibaba技术官熬夜肝出的,Kafka “限量笔记” 牛掰 ~

前言 分布式,是程序员必备技能之一,在面试过程中属于必备类的,在工作中更是会经常用到。而Kafka是一个分布式的基于发布订阅的消息队列,目前它的魅力是无穷的,对于Kafka的奥秘,还需要我们细细去探寻。 要…

GUN C编译器拓展语法学习笔记(三)内联函数、内建函数与可变参数宏

内联函数、内建函数与可变参数宏 一、内联函数1.1 属性声明:noinline1.2 内联函数与宏1.3 编译器对内联函数的处理1.4 内联函数为什么定义在头文件中 二、内建函数2.1 内建函数定义2.2 常用的内建函数2.3 C标准库的内建函数2.4 内建函数:__builtin_const…

WPF异常处理详解

总目录 文章目录 总目录一、WPF异常1 未捕获异常2 模拟未捕获异常场景 二、处理未捕获异常1 DispatcherUnhandledException 异常捕获2 UnhandledException异常捕获3 UnobservedTaskException异常捕获4 异常捕获的综合使用 结语 一、WPF异常 1 未捕获异常 正常情况下&#xff…

《走进对象村5》面向对象的第二大特性——继承

文章目录 🚀文章导读1.1 为什么需要继承1.2 继承的概念**关于继承有如下三点请记住:**1.4 父类成员访问1.4.1 子类中访问父类成员变量1.4.2 super 关键字1.4.3 子类中访问父类成员方法 1.5 子类构造方法1.6 面试题this 和 super 的区别(重点)1.7 再谈代码…

深度解读绩效管理PDCA循环(含操作指南、案例应用)

绩效管理的PDCA循环是一个重要的管理工具,它由四个步骤组成:绩效计划(Plan)、绩效执行(Do)、绩效评估(Check)和结果应用(Action)。这个循环可以帮助组织不断地…

【红黑树】到底是什么,它有哪些基本操作,它的用处是什么,代码如何实现

红黑树是一种自平衡二叉查找树,具有良好的时间复杂度和空间复杂度,被广泛应用于计算机科学领域中,如操作系统、编译器、数据库等。在实际应用中,红黑树主要用于实现高效的查找和排序,如 Linux 内核中的进程调度和空闲内…

VRIK+Unity XR Interaction Toolkit 配置 VR 全身模型(下):实现腿部行走动画

在上一篇教程:VRIKUnity XR Interaction Toolkit 配置 VR 全身模型(上):实现上半身的追踪(附带VRM模型导入Unity方法和手腕扭曲的解决方法)当中,我们通过配置VRIK Unity XR Interaction Toolki…

WiFi(Wireless Fidelity)基础(一)

目录 一、基本介绍(Introduction) 二、进化发展(Evolution) 三、PHY帧((PHY Frame ) 四、MAC帧(MAC Frame ) 五、协议(Protocol) 六、安全&#x…

小松鼠踩一踩游戏

文章目录 一、 介绍和知识点九、UnityFacade 门面设计模式二、 声音全局管理器测试音频代码UI全局管理器父类抽象类 BaseManager子类 UIManager 四、 UI按钮的引用父类 BasePanel子类主面板 MainPanel子类 游戏中 GamePanel子类 游戏结果 ResultPanel 角色动画器、控制角色移动…

性能测试如何做?一套完整的性能测试流程,“我“拒绝背锅...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、测试准备工作 …

中兴B860AV2.1-T(M)-高安版-当贝纯净桌面线刷固件包

中兴B860AV2.1-T(M)-高安版-当贝纯净桌面线刷固件包-内有教程及短接点 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软件…

有序序列中插入一个整数

思路: 将输入的要插入的数m依次和数组中的元素进行比较。 思: 在排好序的数组中,从右往左比较还是从左往右比较? 其实都可以,但是我觉得从右边(也就是最大的数)依次开始比较,程序比较…

纯前端JS实现文件上传解析渲染页面

AI真的能代替前端吗? 回答:不会完全代替 能用吗?复制到项目中只会报错 爆红 ……他完全不能理解你需要什么JavaScript(简称JS)是一种轻量级的脚本语言,主要用于在Web页面上添加交互行为。它由三个不同的…

5月跳槽有风险,不跳也有?

今天讲讲跳槽。 说实话跳槽是为了寻求更好的发展,但在跳槽前我们也不能确定下家就是更好的归宿,这就更加需要我们审慎地去对待,不能盲目跳槽。 其次,我们离职和跳槽,其中的原因很大一部分是目前薪资不符合预期。 那…

基于python+opencv的人脸识别打卡(手把手教你)

基于pythonopencv的人脸识别打卡 1 创建环境2 准备工作2.1新建members.csv文件2.2新建face文件夹2.3注意事项 3 源码4 操作步骤 1 创建环境 conda create -n face python3.7 conda activate face pip install opencv-python pip install pillow pip install opencv-contrib-py…

基于Redis中zset实现延时任务

目录 概要 一、实现原理 适用场景 二、准备工作 三、代码实现 四、zset的优缺点 优点 缺点 概要 本文章主要记录的是使用Redis中的zset实现延时任务,在工作中,像这样的的延时任务是不可避免的,举个栗子:买一张火车票&#…

企业如何利用网络趋势做好线上营销?

随着互联网的不断发展,线上营销越来越成为企业营销的重要组成部分。如何利用网络趋势做好线上营销,已经成为各大企业关注的焦点。本文将为大家介绍如何利用网络趋势做好线上营销的方法和技巧。 一、了解网络趋势 了解网络趋势是做好线上营销的关键。网络…

uboot移植Linux-SD驱动代码解析

一、uboot与linux驱动 1.1、uboot本身是裸机程序 (1)狭义的驱动概念是指:操作系统中用来具体操控硬件的代码叫驱动 广义的驱动概念是指:凡是操控硬件的代码都叫驱动 (2)裸机程序中是直接使用寄存器的物理地址来操控硬件的,操作系统中必须通…