基于Playwright自动化测试部署方案

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

方案概述

基于playwright框架,搭建了自动化测试项目,在服务器上使用Docker起容器跑镜像,镜像内容基于playwright的官方镜像,并向其中移入了host文件,以便切换测试用例运行所在的环境(测试/线上环境)。

引入测试用例的管理后台,方便测试用例与测试报告的管理。管理后台中可以使用Docker官方提供的远程api创建并运行容器来跑测试用例,也能在管理后台上能看到最终的测试报告。

整体流程图

playwright docker,测试工具,功能测试,前端

镜像构建与容器启动

基于playwright的官方镜像,在容器启动前做一些前置动作(entry.sh)。

Dockerfile

FROM mcr.microsoft.com/playwright:v1.24.2-focal
# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
WORKDIR /
USER root
ENTRYPOINT ["/shareDir/entry.sh"]
#第一个是分支名称,第二个是测试用例名称
CMD ["master", "share3d"]

entry.sh

#!/usr/bin/env bash

echo "准备环境"
cat /shareDir/hosts >> /etc/hosts
mkdir /root/.ssh
rm -f /root/.ssh/id_rsa /root/.ssh/id_rsa.pub
cp /shareDir/id_rsa /root/.ssh
cp /shareDir/id_rsa.pub /root/.ssh
cp /shareDir/known_hosts /root/.ssh
chmod 0600 /root/.ssh/id_rsa
chmod 0600 /root/.ssh/id_rsa.pub
chmod 0600 /root/.ssh/known_hosts

echo "克隆仓库"
git clone -b $1 <仓库地址>

echo "当前分支"
cd automationtestcase
git status

echo "安装依赖"
npm install

echo "跑用例"
npm run test:$2

echo "传输结果"
a="/automationtestcase/report@$(date "+%Y-%m-%d-%H:%M:%S")"
mv /automationtestcase/playwright-report $a

scp -r $a root@公网ip:/usr/www/tumax-automationtestcase-report/$2/

Docker配置远程API调用控制

1、修改配置

vi /lib/systemd/system/docker.service

2、找到 ExecStart 配置项,在其中插入监听选项:-H tcp://0.0.0.0:5678(如果是内网生产环境,请将 0.0.0.0 改为内网 IP),最后为:

ExecStart=/usr/bin/dockerd -H unix://var/run/docker.sock -H tcp://0.0.0.0:5678

3、重启docker后,查看5678端口

systemctl daemon-reload
systemctl restart docker 
[root@localhost system]# netstat -nutlp | grep 5678
tcp6       0      0 :::5678                 :::*                    LISTEN      114226/dockerd

管理后台远程调用

官方文档

直接调用接口会出现跨域问题,需要在项目配置和nginx上配置代理(或者直接在nginx下做一层代理也可以,这里就不做代码展示了)

// vite.config.ts
export default () => {
	...
  server: {
    ...
    proxy: {
      ...
      '^/dockerContainer/.*': {
        target: 'http://公网ip:5678',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/dockerContainer/, ''),
      },
    },
  },
	...
}
# /usr/local/openresty/nginx/conf/vhost/tumaxautotest.conf
location /dockerContainer/ {
  proxy_pass http://公网ip:5678/;
}

需要注意的问题

1、启动测试用例后会占用比较多的资源,注意服务器负载情况,避免影响到其他的服务。

2、服务器性能不够,会导致测试用例卡死的情况,如果运行的是比较大型的web项目,需要提前注意一下。

结果展示

playwright docker,测试工具,功能测试,前端

playwright docker,测试工具,功能测试,前端

playwright docker,测试工具,功能测试,前端文章来源地址https://www.toymoban.com/news/detail-537220.html

到了这里,关于基于Playwright自动化测试部署方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 最强自动化测试框架Playwright(20)- iframe

    一个页面可以附加一个或多个 Frame 对象。每个页面都有一个主框架,并且假定页面级交互(如)在主框架中运行。 click 使用 iframe 时,可以创建一个框架定位器,该定位器将进入 iframe 并允许选择该 iframe 中的元素。 上面代码,先定位frame,然后定位frame里的元素,并对元素

    2024年02月13日
    浏览(40)
  • 最强自动化测试框架Playwright(29)-文件选择对象

    FileChooser对象通过page.on(\\\"filechoose\\\")事件监听。 如下代码实现点击百度搜图按钮,上传文件进行搜索。 为文件选择器设置要上传的文件路径 file_chooser.set_files(files) file_chooser.set_files(files, **kwargs) 返回文件选择器关联的input元素 file_chooser.element 返回文件选择器是否接收多个文件

    2024年02月12日
    浏览(41)
  • 最强自动化测试框架Playwright(21)-测试生成器inspector

    运行该命令时,将打开两个窗口,一个浏览器窗口,可以在其中与要测试的网站进行交互,另一个是Playwright Inspector窗口,可以在其中记录测试,然后将其复制到编辑器中。 使用该命令运行测试生成器,后面为要为其生成测试的网站的 URL。URL 是可选的 运行命令并在浏览器窗

    2024年02月13日
    浏览(51)
  • Playwright已经是目前最好的测试自动化工具了吗?

    作者观点 :很长时间以来,Selenium是QA工程师寻求测试自动化解决方案的首选测试框架。它能够测试任何浏览器(这在IE浏览器的统治时期尤其重要)和任何平台。然而,现在看来,那个时代已经过去了。 今天,大多数web应用程序都是用现代前端框架开发的,如React、Angular或

    2024年02月08日
    浏览(54)
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-3-离线搭建playwright环境

    有些小伙伴或者童鞋们私信留言说自己是在公司局域网办公,或者公司为了安全对网络管控比较严格(尤其是一些大的国企、央企),总之就是一句话无法连到外网去在线下载,宏哥刚看到留言时觉得这问题还留言问啊,你找个有网的电脑下载好安装包然后安装就可以用了。

    2024年02月08日
    浏览(71)
  • 【Playwright】了解 Playwright 自动化测试工具中 Headless 和非 Headless 模式的使用场景

    在现代 Web 开发中,测试是一个至关重要的部分。自动化测试可以帮助开发人员和测试人员验证应用程序的正确性,并确保在构建过程中不会引入新的问题。Playwright 是一个流行的自动化测试工具,它支持 Headless 和非 Headless 两种模式。 在本文中,田辛老师将探讨这两种模式的

    2024年02月03日
    浏览(45)
  • Playwright vs Selenium:最好用的自动化测试框架?

    目录 引言 文心一言:Playwright 极简教程 ChatGPT : Playwright极简教程 Playwright 特性说明 安装 编写测试 运行测试 固定装置(Fixtures) 总结 很长时间以来,Selenium是QA工程师寻求测试自动化解决方案的首选测试框架。它能够测试任何浏览器(这在IE浏览器的统治时期尤其重要)和任

    2023年04月17日
    浏览(43)
  • 懒人自动化生成e2e测试文件:JSON => playwright

    本工具实现的是:使用简单的 JSON 配置,生成可执行的 playwright UI 测试文件。 然后通过项目内已经配置好的 playwright 配置实现 UI 测试。 工具工作流程: 期望达到的目的是: ✅ 基础页面(进入页面)即获取页面快照对比 ✅ 等待页面某些请求结束,才进行页面快照对比 ⚪️

    2024年02月16日
    浏览(43)
  • 【playwright】新一代自动化测试神器playwright+python系列课程12_playwright_frame中元素定位

    网页中经常嵌套frame框架,在网页中标签为iframe或frame的元素就是frame框架 如图 或者 在frame框架中的元素时不能直接定位的,selenium处理frame,需要切换到frame中,然后再切换出来,操作比较麻烦,那么playwright对于frame的操作会不会更加简单呢? 答案是肯定的,playwright不需要切

    2024年01月18日
    浏览(46)
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-2-playwright的API及其他知识

    上一篇宏哥已经将Python+Playwright的环境搭建好了,而且也简单的演示了一下三款浏览器的启动和关闭,是不是很简单啊。今天主要是把一篇的中的代码进行一次详细的注释,然后说一下playwright的API和其他相关知识点。那么首先将上一篇中的代码进行一下详细的解释。 2.1创建浏

    2024年02月07日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包