简单搭建一个Python自动化测试框架

1. 安装Python

首先需要安装Python,可以从官网下载对应的版本。安装完成后,可以在终端中输入python来检查是否安装成功。

2. 安装pip

pip是Python的包管理工具,用于安装和管理Python模块。可以在终端中输入以下命令来安装pip:

 sudo easy_install pip

 或者

sudo apt-get install python-pip

 3. 安装所需模块

自动化测试常用的Python模块有:Selenium、Pytest、Requests等。可以使用pip安装这些模块,例如:

 pip install selenium
  pip install pytest
  pip install requests

4. 编写测试用例

测试用例是自动化测试框架的核心部分,需要编写测试用例来验证系统功能是否正常。可以使用Selenium WebDriver来模拟用户行为,例如:

from selenium import webdriver
  def test_login():
      driver = webdriver.Chrome()
      driver.get("https://www.example.com/login")
      driver.find_element_by_name("username").send_keys("testuser")
      driver.find_element_by_name("password").send_keys("testpass")
      driver.find_element_by_css_selector("button[type='submit']").click()
      assert "Welcome" in driver.page_source
      driver.quit()

5. 编写测试框架

测试框架主要包括测试运行器和测试报告生成器两部分。可以使用Pytest来作为测试运行器,使用pytest-html来生成测试报告。例如:

import pytest
  from selenium import webdriver
  @pytest.fixture(scope="module")
  def driver():
      driver = webdriver.Chrome()
      yield driver
      driver.quit()
  def test_login(driver):
      driver.get("https://www.example.com/login")
      driver.find_element_by_name("username").send_keys("testuser")
      driver.find_element_by_name("password").send_keys("testpass")
      driver.find_element_by_css_selector("button[type='submit']").click()
      assert "Welcome" in driver.page_source
  if __name__ == '__main__':
      pytest.main(["-v", "--html=report.html"])

执行以上代码后,可以在当前目录下生成一个名为report.html的测试报告文件。

6. 执行测试用例

可以使用以下命令来执行测试用例:

pytest test_sample.py

 也可以使用以下命令来执行所有测试用例:

 pytest

执行完成后,可以在终端中看到测试结果。同时,也可以在生成的测试报告中查看详细的测试结果。

以上就是搭建一个Python自动化测试框架的详细步骤。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:


这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

法大大邀业内大咖剖析汽车名企数智化实战路径

法大大发布中国首部《汽车行业合同数智化白皮书》,聚焦趋势,解读行业数字化转型攻坚战的破局之道;深入内部,剖析名企数字化的探索实践。 长安汽车、蔚来汽车、上汽大通、 东风汽车集团、奥托立夫、长城滨银汽金… 一众名企高层…

LiteClient工具箱:降低成本,减少监管风险

​​发表时间:2023年9月14日 BSV区块链协会的工程团队一直在为即将推出的LiteClient而努力工作,这是一套模块化的组件,可使简易支付验证(SPV)变得更加便利。 借助LiteClient工具箱,交易所可以通过区块头中…

数字化医疗新篇章:构建智能医保支付购药系统

在迎接数字化医疗时代的挑战和机遇中,智能医保支付购药系统的建设显得尤为重要。本文将深入介绍如何通过先进的技术实现,构建一套智能、高效的医保支付购药系统,为全面建设健康中国贡献力量。 1. 引言 随着医疗科技的飞速发展,…

node加密集合(前端加密、后台解密)

文章目录 一、crypto 加解密生成私密钥公钥加密(也可私钥加密)私钥解密(也可公钥解密) 二、node-rsa加解密生成公私秘钥使用公钥加密(也可私钥加密)使用私钥解密(也可公钥解密) 三、…

KSP音频抓包

1. 按照网上其他教程&#xff0c;安装KSP抓音频 Biu~笔记&#xff1a;高通蓝牙ADK&#xff08;38&#xff09;-- KSP in MDE - 大大通(简体站) Biu~笔记&#xff1a;高通蓝牙ADK&#xff08;22&#xff09;--DSP音频链路监听 - 大大通(简体站) <<Biu~笔记&#xff1a;高…

使用java调用python批处理将pdf转为图片

你可以使用Java中的ProcessBuilder来调用Python脚本&#xff0c;并将PDF转换为图片。以下是一个简单的Java代码示例&#xff0c;假设你的Python脚本名为pdf2img.py&#xff1a; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader…

虚拟展会展览如何搭建,虚拟展会展览有哪些优势

引言&#xff1a; 随着科技的不断进步&#xff0c;虚拟展会展览正逐渐成为企业推广和交流的新方式。那么虚拟展会展览应该如何搭建&#xff0c;虚拟展会展览又能带来哪些好处呢&#xff1f; 一.什么是虚拟展会展览 虚拟展会展览是一种通过网络平台进行的展览&#xff0c;与传…

做PPT必须知道这5个PPT模板网站

做PPT千万不能错过这5个网站&#xff0c;免费下载&#xff0c;各种类型风格很齐全&#xff0c;建议收藏起来。 1、菜鸟图库 https://www.sucai999.com/search/ppt/0_0_0_1.html?vNTYxMjky 菜鸟图库素材非常齐全&#xff0c;设计、办公、图片、视频等素材这里都能找到&#xf…

面试算法58:日程表

题目 请实现一个类型MyCalendar用来记录自己的日程安排&#xff0c;该类型用方法book&#xff08;int start&#xff0c;int end&#xff09;在日程表中添加一个时间区域为[start&#xff0c;end&#xff09;的事项&#xff08;这是一个半开半闭区间&#xff09;。如果[start&…

云原生之深入解析Kubernetes本地持久化存储方案OpenEBS LocalPV的最佳实践

一、K8s 本地存储 K8s 支持多达 20 种类型的持久化存储&#xff0c;如常见的 CephFS 、Glusterfs 等&#xff0c;不过这些大都是分布式存储&#xff0c;随着社区的发展&#xff0c;越来越多的用户期望将 K8s 集群中工作节点上挂载的数据盘利用起来&#xff0c;于是就有了 loca…

Prometheus全面学习教程

一、Prometheus概述 1、Prometheus介绍 Prometheus 是一个开源的服务监控系统和时序数据库&#xff0c;其提供了通用的数据模型和快捷数据采集、存储和查询接口。它的核心组件Prometheus server会定期从静态配置的监控目标或者基于服务发现自动配置的自标中进行拉取数据&…

基于单片机的视力保护及身姿矫正器设计(论文+源码)

1. 系统设计 在本次设计中&#xff0c;其系统整个框图如图2-1所示。其主要的核心控制模块由超声波模块&#xff0c;光敏电阻&#xff0c;按键模块&#xff0c;复位电路&#xff0c;红外模块&#xff0c;LCD显示等组成。其包括自动模式&#xff0c;手动模式。自动模式&#xff…

代码随想录第三十四天(一刷C语言)|不同路径不同路径II

创作目的&#xff1a;为了方便自己后续复习重点&#xff0c;以及养成写博客的习惯。 一、不同路径 思路&#xff1a;参考carl文档 机器人每次只能向下或者向右移动一步&#xff0c;机器人走过的路径可以抽象为一棵二叉树&#xff0c;叶子节点就是终点。 1、确定dp数组&#…

SwitchHosts - 管理、切换多个 hosts 方案的工具

一、hosts文件 简单的说&#xff0c;hosts文件是用于本地dns服务的&#xff0c;采用ip 域名的格式写在一个文本文件当中&#xff0c;Hosts是一个没有扩展名的系统文件&#xff0c;可以用记事本等工具打开&#xff0c;其作用就是将一些常用的网址域名与其对应的IP地址建立一个关…

Day63力扣打卡

打卡记录 寻找最近的回文数&#xff08;模拟&#xff09; 链接 class Solution:def nearestPalindromic(self, n: str) -> str:m len(n)candidates [10 ** (m - 1) - 1, 10 ** m 1]selfPrefix int(n[:(m 1) // 2])for x in range(selfPrefix - 1, selfPrefix 2):y …

JVM基础扫盲

什么是JVM JVM是Java设计者用于屏蔽多平台差异&#xff0c;基于操作系统之上的一个"小型虚拟机"&#xff0c;正是因为JVM的存在&#xff0c;使得Java应用程序运行时不需要关注底层操作系统的差异。使得Java程序编译只需编译一次&#xff0c;在任何操作系统都可以以相…

【【深入浅出了解IIC协议】】

深入浅出了解IIC协议 SCL &#xff1a; 传输时钟信号 SDA &#xff1a; 传输数据信号 1.空闲状态 &#xff1a; SDA 与 SCL都处于高电平 2.起始状态 &#xff1a; 在SCL为高的时候 主设备控制 SDA 从1 到 0 在进入起始位之后&#xff0c;我们把SCL翻转 从设备开始等待主机传…

【RTOS学习】源码分析(通用队列 队列 队列集)

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《RTOS学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 前面本喵讲解了和任务相关的FreeRTOS源码&#xff0c;进行再来介绍一下用于任务间通信的几种数据结…

数组中的某值,添加到数组的对象中成为新的数组

如图所示 我想要这个数组的第二项time在第一项的里面赋值新key 以此类推 window.KaTeX parse error: Expected }, got EOF at end of input: …dTime window.dayjs().add(1, ‘day’).format(‘YYYY-MM-DD 00:00:00’) v.runState 4 // 最后一个时间截止后无法预估后续的状态…

教师多大年龄退休

老师们&#xff0c;你们知道吗&#xff1f;教师这个职业有一个特别的“退休年龄”。 教师是一个特殊的职业。不仅传授知识&#xff0c;还关心每一个学生的成长&#xff0c;用爱和耐心陪伴他们走过人生的每一个阶段。正是因为教师的工作如此重要&#xff0c;他们的工作年限也是有…