承接 modelizer/selenium 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

modelizer/selenium

Composer 安装命令:

composer require modelizer/selenium

包简介

Selenium Package for laravel 5.

README 文档

README

Laravel 5.x Testing for Selenium made easy.

Code Climate StyleCI Latest Stable Version Total Downloads License

Key Points:

  1. You don't need to download anything except this package.
  2. This package download the selenium standalone server v3.11.0 by default and chrome driver will be downloaded based on operating system.
  3. Fluit API based on Browser Testing Kit
  4. Has a minimum configuration option and many things are pulled from the Laravel default configuration.
Version Package Version
Laravel 5.6 2.0
Laravel 5.* 1.0
PHP 7.1 2.0

Requirements:

  1. Java should be installed on local machine.
  2. You should have at least basic understanding of PHPUnit.

Installation guide:

Installing with Laravel Package Manager then you can install it by running given command and Manager will take care to register selenium service provider.

php artisan add modelizer/selenium

Or you can do it by composer.

composer require modelizer/selenium "~2.0"

Register service provider in app.php

Modelizer\Selenium\SeleniumServiceProvider::class

Working with environment variables: You need to create sperate file testing.env in root directory to load testing specific variable. example

APP_URL=http://testing.dev:8000

Don't forget to clear laravel configuration cache file.

php artisan config:clear

We are done! Lets start the selenium server.

php artisan selenium:start

Create first test:

Via an Artisan command

php artisan selenium:make:test SeleniumExampleTest

Manually

  1. Create a dummy SeleniumExampleTest.php file in tests directory.
  2. Add this code to SeleniumExampleTest.php file and run phpunit vendor/bin/phpunit tests/SeleniumExampleTest.php
<?php

namespace Tests;

use Modelizer\Selenium\SeleniumTestCase;

class SeleniumExampleTest extends SeleniumTestCase
{
    /**
     * A basic functional test example.
     *
     * @return void
     */
    public function testBasicExample()
    {
        // This is a sample code you can change as per your current scenario
        $this->visit('/')
             ->see('Laravel')
             ->hold(3);
    }

    /**
     * A basic submission test example.
     *
     * @return void
     */
    public function testLoginFormExample()
    {
        $loginInput = [
            'username' => 'dummy-name',
            'password' => 'dummy-password'
        ];

        // Login form test case scenario
        $this->visit('/login')
             ->submitForm('#login-form', $loginInput)
             ->see('Welcome');  // Expected Result
    }
}

Run the test cases

vendor/bin/steward run staging chrome

This package is been build on top of Steward for running test case with specific arguments you can check out Steward's Wiki

For full documentation you can checkout our API wiki. Which internally inherit facebook Web Driver so you can liverage full functionality of these dependency packages.

Notes:

  1. Selenium 3.11.0 and ChromeDriver 2.35 is been used.
  2. Feel free to contribute or create an issue.
  3. The user will not be able to swap between PHPUnit and Selenium who are below Laravel 5.3.
  4. We made changelog as release board and wiki.
  5. If a virtual machine is being used such as VirtualBox (Vagrant, Homestead), a framebuffer is needed:
# install xvfb if needed:
sudo apt-get install xvfb

# run Xvfb
sudo nohup Xvfb :10 -ac

# Set DISPLAY environment variable
export DISPLAY=:10

Roadmap:

  1. Firefox support added. (Note: Only work when user has installed firefox locally)
  2. Windows and Linux support needs to be added.
  3. Drivers files should get downloaded as per user-specific operating system.
  4. Add more support for more API.
  5. Support for multiple browser.
  6. Behat integration if possible (research)
  7. Support for 3rd party services such as saucelab.

Summary:

Many APIs such as see, wait, submitForm etc are been implemented in Laravel 5.3, and the whole goal of this package is to make it easier for the user to swap testing type anytime. Eg: If a user wants to test by selenium then he only need to extend Modelizer\Selenium\SeleniumTestCase in his test case or if he wants to do PHPUnit testing then he will be able to do it by extending TestCase which Laravel 5.3 provide by default. This will help the user to test a case in many different testing types without doing any changes with API.

Contribution:

  1. If you like this package you can give it a star.
  2. Help to keep readme up to date with some functionality which exist in this package but not visible to other.
  3. Feel free to create PR or Issues or suggestion which can help this package to grow. Just do it. You are welcome :)

Credits

Contributors Twitter Ask for Help Site
Mohammed Mudassir (Creator) @md_mudasir hello@mudasir.me http://mudasir.me

modelizer/selenium 适用场景与选型建议

modelizer/selenium 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 55.05k 次下载、GitHub Stars 达 105, 最近一次更新时间为 2016 年 09 月 04 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 modelizer/selenium 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 modelizer/selenium 我们能提供哪些服务?
定制开发 / 二次开发

基于 modelizer/selenium 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 55.05k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 105
  • 点击次数: 7
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 105
  • Watchers: 7
  • Forks: 32
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-09-04