分度器を使用してキャンバスの描画をテストする (1)

黄舟
リリース: 2017-02-25 13:10:59
オリジナル
1516 人が閲覧しました

Protractor は、Angular ギャングによって開発された e2e テスト フレームワークであり、基本的に Webdriver を使用します。

キャンバスのテストは主に画像の比較です。検索しても、以前使用していた類似の js ライブラリを見つけることができませんでした。

resemblejs は Image と Canvas を使用するため、nodejs で直接使用することはできません。

github 上の誰かがノードに似たものを作成しましたが、C で書かれたノードキャンバスを使用していました。これをコンパイルするには、Python と vc ランタイム ライブラリをインストールする必要がありますが、星が 2 つしかないのも不思議ではありません。

slike をブラウザ内で直接実行しても問題ないでしょうか?

これには、ブラウザーのexecuteAsyncScriptメソッドを使用する必要があります。

最初にexecuteAsyncScriptについて話しましょう

この方法はブラウザ環境で実行するjsコードを置く、つまりブラウザ環境で実行するものであり、Image、Canvasなどのすべてのdomのものは使用できません。次の言葉が含まれています。

そして、実際には、同様の使用法を持つ同期のexecuteScriptがあります。

API は投稿しませんが、使用方法についてのみ話します。

executeAsyncScript メソッドは可変パラメーター メソッドです

最初のパラメーターは、ブラウザーで実行されるコードであるメソッドである必要があります。

例:

function(){
    console.log("我是一个方法");
};
ログイン後にコピー


その後、後で任意の数のパラメータを記述することができ、最初のパラメータメソッドで引数配列を使用してこれらのパラメータを順番に取得できます

例:

function(){
ログイン後にコピー
console.log("我是一个方法,我有三个参数")
    var p1=arguments[0];
    var p2=arguments[1];
    var p3=arguments[2];
};
ログイン後にコピー

非同期なので実行結果はコールバック関数を使って返す必要があります。このコールバック関数はWebdriverが用意しており、引数の最後のパラメータとなります。

したがって、最初のパラメーターの完全な外観は次のようになります

function(){
    console.log("我是一个方法,我有三个参数")
    var p1=arguments[0];
    var p2=arguments[1];
    var p3=arguments[2];
    var callback=arguments[arguments.lenght-1];
    callback("返回");
};
ログイン後にコピー

executeAsyncScript メソッドの戻り値は Promise です

したがって、呼び出されたときの関数全体は次のようになります

browser.executeAsyncScript("function(){console.log("前面写过了我就不写了")}",p1,p2,p3)
ログイン後にコピー
.then(function(result){
        console.log("结果是"+result);
    });
ログイン後にコピー

コールバックの結果then メソッド内で。

分度器を使わずにウェブドライバーのみを使用する場合も同じはずです。

さて、長々と書いても本題に至らないので、とりあえずこれくらいにして、次の記事に書きます。

上記は、分度器を使用したキャンバス描画のテスト (1) の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート