如何在Ubuntu 20.04.6 LTS系统上运行Playwright自动化测试

news2024/11/17 0:23:59

写在前面

  • 这里以 Ubuntu 20.04.6 LTS为例。
  • 示例代码:自动化测试代码。

如果过程中遇到其他非文本中提到的错误,可以使用搜索引擎搜索错误,找出解决方案,再逐步往下进行。

一、 环境准备

1.1 安装python3

1.1.1 使用APT安装Python3
sudo apt update
sudo apt install -y python3
1.1.2 使用PPA安装较新版本的Python3
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.9 # 这里安装的是 Python 3.9

1.1.3 从源代码编译安装Python3

1)首先需要安装依赖项

sudo apt-get update
sudo apt-get install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev wget

2)然后可以从官方下载源代码包并解压

wget https://www.python.org/ftp/python/3.x.x/Python-3.x.x.tgz
tar -xf Python-3.x.x.tgz
cd Python-3.x.x

3)最后进行编译和安装:

./configure --enable-optimizations
make -j8
sudo make altinstall

4)查看已安装python版本

python3 --version
python3 -V

1.2 安装pip3

通常安装python3后,不会自动安装pip。你需要手动安装pip。

sudo apt update
sudo apt install -y python3-pip

查看pip版本

pip3 --version
pip3 -V

1.3 安装jdk

allure生成测试报告,需要有java环境,否则会无法生成。

# 检查是否安装了java,已安装会显示jdk版本
java --version

# 安装jdk
sudo apt update
sudo apt install -y openjdk-8-jdk

1.4 使用Git拉取自动化测试代码/复制自动化测试代码到Ubuntu 20.04.6 LTS

如果使用git拉取自动化测试代码,需要在Ubuntu 20.04.6 LTS环境安装git。

sudo apt update
sudo apt install -y git

# 查看git版本
git --version

二、安装pipenv,管理环境所需依赖

# 安装pipenv,用于管理环境依赖
pip install pipenv

2.1 可能的报错1

我们需要卸载出现问题的setuptools 版本:68.2.0, 安装setuptools==67.6.1

pip uninstall setuptools
pip install setuptools==67.6.1

2.2 可能的报错2

1)打开终端,并编辑用户主目录下的.bashrc文件

nano ~/.bashrc

2)在.bashrc文件末尾添加以下行:

export PATH="$HOME/.local/bin:$PATH"

3)保存文件并关闭编辑器
在nano编辑器中保存并退出文件,您可以使用以下步骤:

按下Ctrl和O键。这将提示您输入文件名以保存更改。

输入文件名并按下Enter键。

然后按下Ctrl和X键,将关闭nano编辑器并返回到终端。

注意:如果您还没有保存文件,则按下Ctrl和X键将提示您是否放弃更改或保存更改。如果要放弃更改,请按下N键;如果要保存更改,请按下Y键,然后输入文件名并按下Enter键。

如果您在编辑器中有任何其他问题,请使用Ctrl和G键来查看nano编辑器的帮助页面。

4) 执行以下命令使更改生效或者您可以重新启动终端

source ~/.bashrc

三、安装项目所需依赖

3.1 进入自动化测试代码根目录,安装项目所需依赖包

pipenv install

注意:如果当前python版本不是3.9(自动化代码指定的版本),是3.x版本(3.x指的是当前安装的python版本),需要使用如下命令

pipenv install --python 3.x --skip-lock
3.1.1 可能的报错

# 确保安装了 python3.x-venv   (3.x指的是当前安装的python版本)
 apt install python3.x-venv

# 使用Python 3.x的venv模块来创建虚拟环境
sudo apt install python3.x-venv

# 以下命令激活虚拟环境
source myenv/bin/activate

3.2. 安装浏览器驱动和浏览器依赖

进入自动化测试代码根目录,在pipenv管理的虚拟环境里面安装playwright所需浏览器驱动

pipenv run playwright install

环境中缺失浏览器所需依赖,运行时会报错如下:

我们需要在pipenv管理的虚拟环境中安装浏览器所需依赖:

pipenv run playwright install-deps

四、运行测试

进入自动化测试代码根目录,在pipenv管理的虚拟环境里面运行测试

pipenv run python run.py

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

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

相关文章

[GXYCTF2019]Ping Ping Ping - RCE(空格、关键字绕过[3种方式])

[GXYCTF2019]Ping Ping Ping 1 解题流程1.1 小试牛刀1.2 三种解法1.2.1 解法一:变量定义拼接绕过1.2.2 解法二:base64编码绕过1.2.3 解法三:内联执行绕过2 思考总结1 解题流程 1.1 小试牛刀 1、提示?ip,结合题目名称,我们直接输入?ip=127.0.0.1 PING 127.0.0.1 (127.…

读书笔记-《ON JAVA 中文版》-摘要26[第二十三章 注解]

文章目录 第二十三章 注解1. 基本语法1.1 基本语法1.2 定义注解1.3 元注解 2. 编写注解处理器2.1 编写注解处理器2.2 注解元素2.3 默认值限制 3. 使用javac处理注解4. 基于注解的单元测试5. 本章小结 第二十三章 注解 注解(也被称为元数据)为我们在代码…

unity URP 利用particle system制作简单的shader交互

首先这里制作了一个简单交互,使用shader grapgh,根据计算距离和变化数值的差实现交互后的扩散,同时计算消散遮罩让它逐渐谈去。 将他赋予材质物体,根据脚本传入位置和逐渐变化的大小后,呈现这样的效果。 但是&#xff…

040:mapboxGL鼠标hover更换选中feature颜色

第040个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中通过鼠标hover的方式来更换选中feature颜色。这里面利用了mousemove和mouseleave的方法,通过选中图层的feature,来设置hover的true或者false,从而通过opacity的case状态来判断透明度用哪一个值。 直接复…

6款流程图制作软件:一站式指南

流程图是一种常用的图示工具,可以帮助我们更清晰地表达和展示流程、流程图等内容。在今天已经变得非常普及和便捷,接下来本文将于大家分享6款好用的流程图软件,一起来看看吧! 博思白板boardmix 博思白板boardmix是一款基于浏览器…

【HTML】web worker

Web Worker是HTML5中的一项技术,可以在后台运行JavaScript代码,以提高Web应用程序的性能并改善用户体验。它允许在独立的线程中执行耗时的操作,而不会阻塞主线程。 主线程是浏览器用来渲染页面、处理用户交互和执行JavaScript代码的线程。然…

记录一次紧急的版本切换

背景 由于一些特殊原因,需要前同事的代码。他并没有给我们后端一份他走时的src。因此这边需要拉到前同事的代码。 过程 查看版本信息 前同事和我们现在开发用的是一个gitee仓库。因此,我们可以看一下之前的开发线。 说白了,每一次提交&a…

【数据结构】算法之道与实践指南:深入理解二叉树的遍历和分治思想(一)

🚩纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:数据结构 🔥该文章主要讲述二叉树的递归结构及分治算法的思想。 目录: 🌍前言:🌍…

面试准备-软件工程

参考: 《程序员面试笔试宝典》(何昊、叶向阳) 标准的软件开发过程: 1)可行性分析:要确定开发目标和总要求,一般要考虑技术是否可行,收益是否可行、用户操作是否可行,是…

【C++】如何使用RapidXML读取和创建XML文件

2023年10月11日,周三下午 目录 RapidXML的官网使用rapidXML读取XML文件中的元素的属性和值此次要读取的XML文件:ReadExample.xml用于读取此XML文件的C代码运行结果使用rapidXML创建XML文件用于创建XML文件的C代码 如果上面的代码无法运行运行结果​编辑…

Peter算法小课堂—DP背包问题

大家好,我是Peter,我又来啦🎈🎄✨ 🎈🧨🎉《动态规划》专栏来啦,目前为止,此专栏已经有四篇文章啦🎁🎀🎄 1.DP概念与编程方法 DP概念…

交叉熵Loss多分类问题实战(手写数字)

1、import所需要的torch库和包 2、加载mnist手写数字数据集,划分训练集和测试集,转化数据格式,batch_size设置为200 3、定义三层线性网络参数w,b,设置求导信息 4、初始化参数,这一步比较关键,…

bootz启动 Linux内核涉及do_bootm_linux 函数

一. bootz启动Linux uboot 启动Linux内核使用bootz命令。当然还有其它的启动命令,例如,bootm命令等等。 本文只分析 bootz命令启动 Linux内核的过程中涉及的几个重要函数。具体分析 do_bootm_linux函数执行过程。 本文继上一篇文章,地址…

vue3 + element Plus实现表格根据关键字合并行,并实现行的增删改操作

根据关键字合并表格 1.实现初始化表格2.实现添加班级与学生的功能3.添加的弹窗4.删除班级5.删除学生 首先看最终实现的效果 1.实现初始化表格 <template><div class"main-page"><div class"flex-end"><div class"public-search…

Service Weaver:以单体形式编码,以微服务形式部署

分布式应用的主流架构模式演化为微服务架构已经有些年头了。微服务、DevOps、持续交付和容器技术(k8s)是构成最初云原生概念[1]的核心要素。它们相生相拌&#xff0c;共同演进&#xff0c;并推动了云计算全面进入云原生时代。 云原生应用普遍采用微服务架构&#xff0c;遗留的单…

阿里云r7服务器内存型CPU采用

阿里云服务器ECS内存型r7实例是第七代内存型实例规格族&#xff0c;CPU采用第三代Intel Xeon可扩展处理器&#xff08;Ice Lake&#xff09;&#xff0c;基频2.7 GHz&#xff0c;全核睿频3.5 GHz&#xff0c;计算性能稳定&#xff0c;CPU内存比1:8&#xff0c;2核16G起步&#…

HBase 表如何按照某表字段排序后顺序存储的方法?

首先需要明白HBase表的排序规则&#xff1a; &#xff08;1&#xff09;rowkey排序&#xff08;字典排序&#xff09;——升序 &#xff08;2&#xff09;Column排序&#xff08;字典排序&#xff09;——升序 &#xff08;3&#xff09;时间戳排序——降序 rowkey 字典序排序…

DeskHIL桌面级仿真测试平台

硬件在环测试系统&#xff0c;一直是汽车电子功能测试的重要工具。随着测试工程师对硬件在环系统的要求越来越高&#xff0c;对其高集成性、便携性的需求也愈发强烈。由于硬件在环系统设计复杂、定制化程度高等因素&#xff0c;成本一直居高不下&#xff0c;因此&#xff0c;市…

C++基础入门学习笔记

问题1&#xff1a;什么是 C 中的多态&#xff1f;如何实现多态&#xff1f; 回答1&#xff1a;C 中的多态是指同一种类型的实体&#xff0c;可以在不同的情况下表现出不同的行为。实现多态的方式有两种&#xff1a;虚函数和模板函数。虚函数是在基类中声明为虚函数的函数&…

c++视觉处理---仿射变换和二维旋转变换矩阵的函数

仿射变换cv::warpAffine cv::warpAffine 是OpenCV中用于执行仿射变换的函数。仿射变换是一种线性变换&#xff0c;可用于执行平移、旋转、缩放和剪切等操作。下面是 cv::warpAffine 函数的基本用法&#xff1a; cv::warpAffine(src, dst, M, dsize, flags, borderMode, borde…