CasperjsJS如何使用依赖测试用例设置测试套件

时间:2015-01-20 21:22:00

标签: javascript casperjs qa web-testing test-suite

我如何创建一个测试套件,我的测试用例依赖于之前的测试用例开始?

示例:

测试1使用用户X登录

测试2我的帐户页面(用户登录后来了)

测试3"跟随同一用户的其他测试,但在其他页面"

我已经通过CasperJS writing_modules& amp;其他示例,但我无法找到或理解如何根据我的具体要求进行设置。 或者,如果它甚至可以这样做。

目前我的设置如下:

文件1套件

// Suite.js 
var Suite;
Suite = require("./Login_User.js");
Suite.login_User("randomname","randompassword");

casper.then(function() { ;
    this.test.pass("Hit the first then");
    Suite = require("./MyAccount.js");
    Suite.Enterprise();;
});

casper.run(function() {
    return this.test.done();
});

文件2登录功能

// Login_User.js (Test 2)

casper.test.begin("login page", function(test) {
    casper.options.waitTimeout = 5000;

    casper.on('remote.message', function(msg) {
        this.echo('rem msg: ' + msg);
    });

    casper.on("page.error", function(msg) {
        this.echo("Page Error: " + msg, "ERROR");
    });

    var url = "https://website.com";

    casper.start(url, function() {
        console.log("page loaded");
    });

    exports.login_User = function(username, password) {
        casper.test.comment(username + "\n" + password);

        casper.then(function() {
            this.evaluate(function(username, password) {
                $("cmpLogin_UserName").val(username);
                $("cmpLogin_Password").val(password);
                $("cmpLogin_LoginButton").click();
            }, {
                "username": username,
                "password": password
            })
            casper.waitForUrl("https://website.com/myAccount.aspx", function() {
                console.log("Logged in");
                casper.capture("Loggedin.png");
            });
        });

        casper.then(function(){ 
            this.test.assertTitle("My Account", "Title is Login");
        });
        casper.run(function() {
            test.done();
        });
    }
});

文件3我的帐户内容

// MyAccount (Test 3)
casper.test.begin("Account page", function(test) {
casper.options.waitTimeout = 5000;

casper.on('remote.message', function(msg) {
    this.echo('rem msg: ' + msg);
});

casper.on("page.error", function(msg) {
    this.echo("Page Error: " + msg, "ERROR");
});

var url = "https://website.com/myAccount.aspx?";

casper.start(url, function() {
    console.log("page loaded");
    casper.capture("MyAccountEnt.png");
});

// It does not reach this section!!! 
exports.Enterprise = function() {
        casper.then(function() {
            this.test.assertTitle("My Account", "My Account page");
            this.test.pass("test test test");
        });

    casper.run(function() {
        test.done();
    });
}
});

命令行输出 http://i.imgur.com/ZHsZ5hX.png?1

0 个答案:

没有答案