文件目录
  • 新建虚拟环境
  • selenium vs puppeteer
    • pyppeteer
    • pytest-asyncio
  • 小结

从今天开始,大家从零开始详细地实践活动一个Web的功能测试新项目。

新建虚拟环境

在我们刚开始一个新的新项目时 ,应用虚拟环境是一个良好的习惯 。管理方法虚拟环境的专用工具有很多,具有python3.3刚开始内嵌的venv控制模块,也是有第三方专用工具pipenv、poetry等。这儿 ,大家挑选poetry。

最先,新建项目,取名为rafiki 。

PS G:\luizyao> poetry new rafiki Created package rafiki in rafiki PS G:\luizyao> PS G:\luizyao> tree /f rafiki # 查询新项目的组织架构 Folder PATH listing for volume Windows Volume serial number is A2F6-0F5B G:\LUIZYAO\RAFIKI │ pyproject.toml │ README.rst │ ├─rafiki │ __init__.py │ └─tests test_rafiki.py __init__.py

rafiki来自于纪实片塞伦盖蒂中一只猩猩的姓名。

poetry默认设置将pytest做为dev依靠加上到新项目的环境变量中:

# pyproject.toml [tool.poetry.dependencies] python = "^3.8" [tool.poetry.dev-dependencies] pytest = "^5.2"

​ 由于pytest是大家的关键依靠 ,因此 大家将所述一部分改动成:

# pyproject.toml [tool.poetry.dependencies] python = "^3.8" pytest = "^6.0" [tool.poetry.dev-dependencies]

​ 现阶段pytest的最新版是6.0.0。

随后,安裝虚拟环境:

PS G:\luizyao\rafiki> poetry install --no-root Creating virtualenv rafiki-v2Ofcj9r-py3.8 in C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs Updating dependencies Resolving dependencies... Writing lock file Package operations: 12 installs, 0 updates, 0 removals - Installing pyparsing (2.4.7) - Installing six (1.15.0) - Installing atomicwrites (1.4.0) - Installing attrs (19.3.0) - Installing colorama (0.4.3) - Installing iniconfig (1.0.0) - Installing more-itertools (8.4.0) - Installing packaging (20.4) - Installing pluggy (0.13.1) - Installing py (1.9.0) - Installing toml (0.10.1) - Installing pytest (6.0.0)

这时候,poetry早已全自动帮大家安裝好全新的pytest了 。

最终 ,查询大家建立的虚拟环境的信息内容:

PS G:\luizyao\rafiki> poetry env info Virtualenv Python: 3.8.4 Implementation: CPython Path: C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\rafiki-v2Ofcj9r-py3.8 Valid: True System Platform: win32 OS: nt Python: G:\Program Files\python38

selenium vs puppeteer

WEB检测最常见的专用工具很有可能便是selenium了,可是我还在以前的应用中也碰到了一些不方便的状况:

  • WebDriver和浏览器版本必须相匹配;
  • 尽管是跨电脑浏览器的脚本制作,但有时候還是要对不一样的电脑浏览器做一些兼容;
  • selenium根据WebDriver驱动器电脑浏览器 ,实行的不足快;

最好可以绕过WebDriver ,立即驱动器电脑浏览器。现阶段这类检测架构有cypress 、testcafe、puppeteer等,但是他们全是Node.js的架构,而javascript得以让大部分测试工程师望而生畏。

puppeteer严苛的说并不是一个检测架构 ,它的官方网叙述是:

Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol. Puppeteer runs headless by default, but can be configured to run full (non-headless) Chrome or Chromium

它有一些限定:

  • 只适用Chrome和Chromium电脑浏览器,但是官方网也是有适用其他电脑浏览器的方案 。

大量热点话题能够 参照:https://github.com/puppeteer/puppeteer#faq

我往往挑选puppeteer,而不是selenium的缘故有以下几个方面:

  • selenium着眼于跨电脑浏览器的解决方法 ,而实际中Chrome的市场占有率早已很高了。我以前用selenium写的脚本制作,非常少规定在其他的电脑浏览器上实行,反倒提升了维护保养的成本费;
  • selenium配备繁杂 ,而puppeteer基本上是免配备的;
  • puppeteer方便开展多线程实际操作,例如另外实行2个电脑浏览器另外下达配备;往往有这类情景,是我工作特性决策的 ,我的检测目标是通讯设备,每台机器设备都是出示WEB服务项目,并且一般 必须几台机器设备构成一个情景开展检测 ,那麼另外配备几台机器设备毫无疑问要便捷的多;

自然 ,这仅仅我一家之言,假如你還是期待跨电脑浏览器的解决方法,除开selenium ,我觉得cypress是一个更强的挑选,仅仅要多一些学习培训成本费。

pyppeteer

puppeteer有一个第三方的Python版本号----pyppeteer,尽管它早已落伍puppeteer许多版本号 ,可是基本要素還是能用的,并且早已有一群人在接任这一新项目,并刚开始追逐puppeteer了 ,因此 我认为還是能够 希望的 。

安裝pyppeteer:

PS G:\luizyao\rafiki> poetry add pyppeteer Using version ^0.2.2 for pyppeteer Updating dependencies Resolving dependencies... Writing lock file Package operations: 6 installs, 0 updates, 0 removals - Installing appdirs (1.4.4) - Installing pyee (7.0.2) - Installing tqdm (4.48.0) - Installing urllib3 (1.25.10) - Installing websockets (8.1) - Installing pyppeteer (0.2.2)

pytest-asyncio

由于大家的测试程序是asyncio的,全部大家必须将测试计划当做一个协程来解决,pytest-asyncio软件能够 协助大家完成这一实际效果 。

安裝pytest-asyncio:

PS G:\luizyao\rafiki> poetry add pytest-asyncio Using version ^0.14.0 for pytest-asyncio Updating dependencies Resolving dependencies... Writing lock file Package operations: 1 install, 0 updates, 0 removals - Installing pytest-asyncio (0.14.0)

小结

文中大家明确了最关键的第三方库---- pyppeteer ,后边大家就融合pytest一步步订制我们自己的检测架构。

文章来源于网络,如有侵权请联系站长QQ61910465删除
本文版权归趣KUAI排www.SEOguruBlog.com 所有,如有转发请注明来出,竞价开户托管,seo优化请联系QQ→61910465