bonwe/bonwenium

基于改装的webdriver和selenium理念,采用模块化封装的PHP自动化测试框架。开发者只需掌握基础的前端知识和PHP知识,就能通过简化的开发实现复杂的自动化测试,大幅度提升开发效率,降低自动化测试的门槛。

v1.1.6 2019-11-22 07:35 UTC

This package is not auto-updated.

Last update: 2024-09-21 07:32:49 UTC


README

php自动化测试框架

使用

安装浏览器(推荐chrome)
下载对应浏览器的webdriver,并启动。
本项目已更新至最新版本,使用composer加载所有组件。
配置.env文件
执行 php bonwenium list 可以获取示例。

项目目录

app/actions

常规步骤组件:
例如针对个人主页测试、个人收藏测试等,都需要登录后展开,所以常规操作可以写于actions。

app/scenarios

情景步骤组件:
例如针对登录进行场景测试,如手机号格式、密码格式等多样化场景测试时,可以写于scenarios。

app/functions

自定义步骤组件:
例如输入验证码等特殊处理操作,需要扩展代码分析,因此提供functions,继承主Controller,可以处理程序同时操作当前的webdriver实例。

app/steps

生产线:
也称为组件集/步骤集,所有组件取自以上三种(常规、情景、自定义)组件,可以根据测试用例任意搭配。
一条完整的生产线可以成为一个完整需求的全套自动化测试。

config/app.php

应用常规配置:
如测试网站入口、日志导出方式、点击停顿时间等等。

config/web_driver.php

webdriver驱动配置:
驱动url、监听端口、驱动浏览器等。

组件开发者文档

组件以字符串数组的方式实现element操作组合,一个字符串实现一个操作。

事件操作:

子集定位,以>>标识子集查找,查找类型id、class、tag。
例 >>tag:li
同级筛选,以>标识同级筛选,查找类型tag、id、text、num、css等。
例 >text:登录
例 查找第0个 >num:0
具体操作,以>>>标识具体操作,write、append、click等。
例 >>>write:新概念
例 点击 >>>click
按上述可实现任何鼠标点击或者键盘写入操作。
例 tag:div>>tag:button>text:登录>>>click

常规组件/情景组件:

以事件操作数组的形式将不同事件按场景分析组合而成,遵循事件定位原则,有如下模式:

must_step:必须执行的事件。
例 "must_step" => "tag:button>text:登录>>>click"

should_step:非必须执行的事件。
例 "should_step" => "tag:button>text:登录>>>click"

sleep:停顿(秒)。
例 "sleep" => 2

usleep:停顿(微秒)。
例 "usleep" => 500000

scroll:滚动到指定位置
例 "scroll" => "0,0"

until:当某element出现/消失后。
例 "until" => "tag:input>text:验证码>>>appear"
例 "until" => "tag:button>text:重试>>>disappear"

asserts:断言。
例 "asserts"=>["tag:button>text:发送>>>exist","tag:span>text:密码错误>>>no_exist"]

function:自定义组件。
例 "function"=>"User@writeResetPwdCaptcha@{"phone":18810680772}"
调用functions下的User.php中writeResetPwdCaptcha函数,参数以json定义,框架会自动解析并存入类变量datas中。可以使用$this->datas['phone']调用

因此bonwenium极大地简化了开发者的代码量,只需掌握html和js基础知识,就可以编写出一个理想的自动化测试项目。

生产线:

steps:由常规组件、情景组件、自定义组件等自由组合而成。一条生产线完成一个功能甚至一个完整项目的自动化测试。