# webrunner **Repository Path**: z417_admin/webrunner ## Basic Information - **Project Name**: webrunner - **Description**: 以python,selenium,pytest为基础的web自动化框架 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-06-10 - **Last Updated**: 2024-11-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WebRunner * 当下只支持Chrome和Chromium ## 简介 * 面向页面(支持,但非必须) * 页面元素 ← 映射 → python 对象 * 提供全局的 'driver' 对象 * 通过 `webrunner.common.tools.get_driver()` 获取全局 driver * 也可通过 `webrunner.common.tools.create_driver()`创建私有 driver * 扩展简单 * 对 `driver` 添加自定义功能 * 可无缝接入 `pytest` 框架支持的插件 * 环境变量理念 * 快速切换测试环境 * 快速切换测试配置 * 储存敏感数据 * 数据驱动模式 (DDT) * 支持对case的过滤功能 * 默认使用junit和pytest-html作为测试报告 * 易于集成Jenkin或其他CI工具 * 当前的缺陷 * 需要按照pytest框架约定的规则写测试函数(方法) ## 运行环境 * 基础 * Python >= 3.6.x * 注意: 在Python 3.8中有一个未知的错误 * selenium 3.141.0 [官方文档](https://selenium-python-zh.readthedocs.io/en/latest/index.html) * pytest 5.3.2 [官方文档](http://docs.pytest.org/en/latest/contents.html) * pytest-html 2.0.1 [官方文档](https://pypi.org/project/pytest-html/) * junit-xml [官方文档](https://pypi.org/project/junit-xml/) * 模板引擎 * Jinja2 2.10.3 [官方文档](https://jinja.palletsprojects.com/en/master/) * PyYAML 5.2 [官方文档](https://github.com/yaml/pyyaml) * 其他 * psutil 5.6.7 [官方文档](https://pypi.org/project/psutil/) * Click 7.0 [官方文档](https://pypi.org/project/click/) ## 目录结构 ```shell ├── demo // 例子 ├── doc // 使用文档 ├── webrunner // 主目录 │ ├── common // 基础工具包 │ ├── template // 模板文件存放路径(计划支持定制模板) │ ├── interface.py // 暴露给外部的接口 │ └── run.py // 程序主入口 ├── README.md // 就您现在阅读的 └── setup.py // 安装入口 ``` ## 安装指南 * 建议先[设置阿里云pip源,加速pip更新速度](https://www.cnblogs.com/ityunv/p/5909434.html) * 推荐在虚拟环境中安装使用 ```shell $ pip install virtualenv $ virtualenv wrunEnv $ cd wrunEnv/Script $ activate # deactivate (to terminal) ``` * 下载 WebRunner工程后安装 ```shell $ python setup.py install ``` * 如果某些依赖安装失败 (比如 pyyaml 安装失败) ```shell $ pip install -I pyyaml ``` * 提示:`pip uninstall pyyaml` 是卸载pywin32模块的命令,其余类推;缺失的、安装失败的模块,请直接使用pip管理 * 卸载webRunner ```shell $ pip uninstall webrunner ``` ## 快速开始 * 解决Chrome版本和chromedriver匹配的问题,请参见博文[获取Chrome版本并下载匹配的chromedriver](https://www.cnblogs.com/z417/p/13785734.html) ### 创建新的测试项目 * 设置基础目录结构 ```shell ├── driver │ └── chromedriver // 必需且要与Chrome版本匹配 └── report // 报告默认存放目录 ``` ### 新建`testDemo.py` ```python from webrunner.common.tools import get_driver # 返回全局唯一的webdriver实例 driver = get_driver() def test_demo(): driver.get('https://www.baidu.com') driver.sleep(3) driver.quit() ``` ### 在`python virtualenv`终端里输入 ```shell $ wrun rt testDemo.py ``` * 打开Chrome并最大化, 访问`百度`首页 * 生成`20200706_142333.html`和`20200706_142333.xml`存在report文件夹内 ### 使用`环境变量` * 新建`baidu.env`如下(支持以"=" 和 ":"分割,并且自动去除首尾空格) ```text BASE_URL = https://www.baidu.com ``` * 更新`testDemo.py`以使用 ```python from webrunner.common.tools import get_driver from webrunner.common.tools import get_env driver = get_driver() def test_demo(): driver.get(get_env('BASE_URL')) driver.sleep(3) driver.quit() ``` * 再次运行 ```shell $ wrun rt --dot-env baidu.env testDemo.py ``` ### 指定报告名和路径 ```shell $ wrun rt --dot-env google.env --report report/demoReport testDemo.py ``` ### 开启/关闭Chrome的`headless`模式 ```shell $ wrun rt -H on --dot-env google.env --report report/demoReport testDemo.py ``` * 默认是`off` ## 更多特性请参阅[doc](./doc) ## WeChat ![avatar][1vs] [1vs]:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAQMAAACXljzdAAAABlBMVEX4+PgbGhtNC3jJAAAFB0lEQVRYw+3Xv4/cRBjG8cfrhEEkyisU0p12KFJEChIpr1jZ11GmSXRl+AcipWMLExu22L8CKSVKilCgNEicrZWoU5AGCmYbiiCRQcqJV8GZh8L2rnfPC3dSlCpurvjc1z9nxl7g3fb2tphksFJATG2Rk8hJlqeUeWgkPWVzs3hfHoejgw1xQGI9EtGYPg8WGWDWoisRTDbkdM1KltQEyBIYOmSwmlnOh0R2yhtoLOuUCrCIiCGJdkrTTM7SXPuAxZWTkggmVorEDkgxsVIkcuI4iSD7v2YlDkgssgSInRQpdfP5vAVpRuKs8jpp/myN3tnS68TKfED+s8lONnpJXvzxSidj86jy97q50GxCUidAFvmtmSdkM1CGZXJ6kWICKVJvarBOiZg+L1tJGgk7pY52ylBjitSbsNVYauSQB2hKxJU3JTAFAKTUeCWm8qYAMrRNvLNp95Y3zUosNXWG9SVNXzOuHtz/oWzvdSJF6qSGaOo4L6H5spVxX2Z9WTf58rQNYBZUpFRYFokAtr0ewCzoV2KBcXvWW43daKpeI4Dd2YxRN+u1RwIWqTcLx3kQQyftSFzLkrNgB8VxvkOWnPX3duyn1+zt6ZU7hu7x10c8n7vjRpZeYZFBDJ0UKZEvm3EQL/20kflJ0dVVx4MNAGBTWKT0SAAAWepJynwtigkAYJJ6MvTF92Wr2QfOAXt9qYhWAs7t9faGyJuFEyqEwF7qFe3qshbDYodYliekGhbL0ZHjsynSfxzss4NDuna8WRapY7EPO3OwJQy7kZh2cvH6lqyaix+WOxpgU2InXFAKYATAVp617VbYTtDJeKf0mqqVYqgpB5ogRQLN9oERsBd51rY9tyBFAp/tA+8NiWb7wNWdzZZEt0QvO1KBu8Aeik9/tjdft+uoxo1c/xx7gCnHop1EjlRkXx40YqXebB590UjRa2JHanQ7v7HZjEUTKwXi/H6JOFjNQzvnk1ZGv4QSJojmbGXd/PjxZtPJ6O9vHmw2R491Yj97ipjVAS7Tahq6bz4/BTTDiD8dYK/3LonpFfAZIv75dFuaBvz9u+EG6V83NmVJ1lCjiI7vwdKbWUA3txngYx09dFdh6c2CfdG4Hh3cvoWU3iy2mhqHDx800mtqaNxcXt4/joPCShEBAOrUA3YlU1gpohJAvCVN4w2XrFMPjLeatayaB/qRPSwuHP9Gx1dHz0ffds3STxMoUpJLHwdr6tXd8ZrAIyXpvNmUVeN8HGSr6fbWb5BgCouYngvnMwhy147EMbSTpc9g1zLU1GdotJW6PTcGK3RCLllHnnTd2uvzYIWlkG5bzt48O2Y4OuTxHfKY9QWf87mY9r3NiprTm9pKnXpk7eqCRLig70u7ImEsXDRNOG0TB6mTSJFAM4u8Isnm7sRBNIFHAp20Etq7E0QTaF9O1UywdZzVA4f1OWlKIK+8dmO0Ec3JeSe2L2droie/3v1efEre+eoJ8srpJ2Oz/iJuJn9MANDMyi4ZyymaerhxQAKSnqTMKq+wQzKvvOKNNfPKKdJWlmznnFk4ZM0/detbK/NB8Wdv5GnM14YBeZA7L7j6EtLEIqY3JPJgzWKHiJmdudkSsI6osB4JWG78pu1LsVPKs4m2Mls/BWQRzYIyD5bFuF35VjJfUGZBWNpt6ZpyPCSzYNcNyRr+OskFZf7y/Kujl+16zeb908ishOauL76V+Qk5W/Nue1vbv/CWK6cUj14aAAAAAElFTkSuQmCC