phbergsmann/behat-google-analytics-extension

此包已被放弃且不再维护。未建议替代包。

0.1.0 2014-04-21 13:29 UTC

This package is not auto-updated.

Last update: 2020-02-21 15:53:56 UTC


README

先决条件

Google Analytics 实时 API 测试版访问权限

只需填写此表格并等待一段时间:https://docs.google.com/forms/d/1qfRFysCikpgCMGqgF3yXdUyQW4xAlLyjKuOoOEFN2Uw/viewform

Google API 服务帐户

Google 提供了一些帮助: https://developers.google.com/console/help/#service_accounts

Google Analytics 帐户

为您的测试域名添加一个属性,授权您的服务帐户具有“读取与分析”权限。

安装和配置

通过 composer 添加扩展

添加依赖到

"phbergsmann/behat-google-analytics-extension": "*"

扩展您的 behat.yml

default:
    extension:
        PhBergsmann\BehatGoogleAnalyticsExtension\Extension:
            service_account_name: 1234567890@developer.gserviceaccount.com
            key_file_location: /PATH/TO/YOUR/PRIVATE/KEY
            client_id: 1234567890.apps.googleusercontent.com
            view: 123456789

包含上下文类

在您的自定义特征上下文中,在构造函数中添加新的上下文

    /**
     * Initializes context.
     * Every scenario gets it's own context object.
     *
     * @param array $parameters context parameters (set them up through behat.yml)
     */
    public function __construct(array $parameters)
    {
		  $this->useContext('googleanalytics', new PhBergsmann\BehatGoogleAnalyticsExtension\Behat\Context\GoogleAnalyticsContext());
    }

如果您想使用活动标识符以允许并发测试(推荐),请在您的特征上下文中添加以下行

	/**
	* Opens specified page.
	*
	* @Override Given /^(?:|I )am on "(?P<page>[^"]+)"$/
	* @Override When /^(?:|I )go to "(?P<page>[^"]+)"$/
	*/
	public function visit($page)
	{
		$this->getSubcontext('test')->visit($page);
	}

开始测试

识别测试运行

Google Analytics 没有识别用户(通过提供一些可检索的 ID)的功能。为了绕过这一限制,扩展添加了通过注入活动跟踪参数来“标记”测试运行的功能。测试在没有用户标记的情况下运行良好,但如果在 5 分钟内运行同一测试两次,则无法保证第二次运行不会产生误报,因为第一次运行测试是成功的。要启用活动标记,请将以下标记添加到您的场景中

@GoogleAnalyticsIdentifyByCampaign

扩展添加以下步骤定义

检查给定的 URL 是否已被跟踪
Google Analytics tracks a pageview on "/the/url/i/want/to/be/tracked/"
检查给定的事件是否已触发
Google Analytics tracks an event with category "<<EVENT-CATEGORY>>", action "<<EVENT-ACTION>>" and label "<<EVENT-LABEL>>"