可重复使用的指标值

Protractor reuseable values

本文关键字:指标值      更新时间:2023-09-26

我在从Protractor测试中获取值并能够重用这些值时遇到了一些麻烦。

我有一个应用程序,可以从表单中创建新记录,然后将它们显示给用户。添加成功后,会向用户显示一个成功警报,显示新创建的记录的ID。"您已成功添加ID为{{newEntry.ID}}的条目"。

我有一套测试,断言所有字段都经过了正确的验证等等,这些都能正确工作。我现在想通过获取新创建的记录并测试一组新值是否正确更新来测试更新方面的内容。因此,我想获取新创建的记录的ID并重用它

我已经在我的套件的顶部创建了变量ID

var id;

然后,我在表单上运行所有验证测试,并提交正确的提交文件。然后,我检查是否显示了成功消息,在本例中,ID=2。

describe('Add users', function() {
    var endpoint = "users";
    var id;
    correctSubmission(endpoint, id);
    function correctSubmission(endpoint, id) {
        describe('Testing correct submission', function() {
            it('should navigate back to the list page', function() {
                expect(browser.getCurrentUrl()).toBe("list/" + endpoint);
            });
            it('should display a success message', function() {
                expect(element(by.css('.alert-success')).isPresent()).toBeTruthy();
            });
            it('should get the record ID from the success message', function() {
                expect(element(by.css('.add-message')).evaluate('newEntry.id')).toEqual(2);
                id = element(by.css('.add-message')).evaluate('newEntry.id');
                return id;
            });
        });
    };
});

我基本上需要得到等于2的ID,并将其返回到全局ID,这样我就可以在其他测试中使用它。显然,ID目前是一个未解决的承诺,我已经尝试使用:

protractor.promise.all(id).then(function (result) {
    console.log("ID is: " + result);
});

但这只记录字符串。

我有点不知道下一步该做什么,因为我尝试了各种各样的方法,但都无济于事,我被这个项目耽误了时间。

非常感谢,如果你能帮助这个Protractor n00b。

您是否尝试使用量角器params配置属性?

exports.config = {
    params: {
        myid: 'somevaluehere'
    }
};

然后你可以通过访问它

browser.params.myid