量角器-如何在Jasmine上使用标签进行e2e测试

问题描述 投票:0回答:1

我遇到了一些问题,我无法做些什么以能够标记要运行的不同测试。

我想要的测试仅在我希望能够标记要支付的付款(万事达卡,Visa或美国运通卡)的末尾才需要。我确实有一个执行详细信息页面的测试,例如编写用户信息,选择发货,但是最后我确实有多个选项,我想在待测试项目上进行待决:

paymentPage.js

describe('Payment page', function () {
    paymentPage = new PaymentPage();

    // The details page is accessible by the specified URL
    it(`Credit Card - Has a form that can receive user data`, async function () {

        await paymentPage.creditCardPayment();

    });


     //Visa
    it('Enets payment', async function () {
            //TODO

    });

     //Amex
    it('Enets payment', async function () {
            //TODO

    });
});

如您所见,我想测试3个选项,因此每当我进行“量角器e2e运行万事达卡”等操作时,这意味着它应该运行第一个测试用例,如果我选择Visa,则执行第二个测试用例并跳过其余的基本上。

但是我确实有一些测试要在进入支付页面之前执行,但是它们都需要为每次支付执行相同的测试,因此这意味着在支付之前,所有测试用例每次都需要做完全相同的事情(所以我想我们只是需要在付款时做标签以使脚本知道选择哪个付款)?

我该如何进行标记,或者有人可以使用另一种更好的解决方案?这样我就可以选择要经营的付款服务提供商

编辑:

exports.config = {

    capabilities: {
        browserName: 'chrome',
        chromeOptions: {
            args: [
                'incognito', 'disable-extensions', 'start-maximized', 'disable-infobars', '--window-size=1920,1080'
            ]
        },
        loggingPrefs: { browser: 'ALL' },
        platform: 'ANY',
        version: ''
    },


    specs: [
        'pagesDesktop/testPage.js',
        'pagesDesktop/paymentPage.js'
    ],

    jasmineNodeOpts: {
        reporter: "mochawesome",
        defaultTimeoutInterval: 60000
    },

    SELENIUM_PROMISE_MANAGER: false,

    framework: 'jasmine',

    params: {
        cardType: {
        }
    }

};

describe('Payment page', function () {
    paymentPage = new PaymentPage();

    console.log(browser.params.cardType);

    if (browser.params.cardType === "mastercard") {
        // The details page is accessible by the specified URL
        it(`Credit Card - Has a form that can receive user data`, async function () {
            await paymentPage.creditCardPayment();
        });
    }
selenium jasmine protractor tags
1个回答
0
投票

仅添加if / else逻辑

describe('Payment page', function () {
    paymentPage = new PaymentPage();

    // The details page is accessible by the specified URL
    it(`Credit Card - Has a form that can receive user data`, async function () {

        await paymentPage.creditCardPayment();

    });


  if (browser.params.cardType === 'visa') {
    it('Enets payment', async function () {
            //TODO

    });
  } else if (browser.params.cardType === 'amex') {
     //Amex
    it('Enets payment', async function () {
            //TODO

    });
  }
});

您可以在How can I use command line arguments in Angularjs Protractor?或此处阅读如何参数化睾丸https://medium.com/@nicklee1/making-your-protractor-tests-data-driven-e3c9e2a5e4e7

© www.soinside.com 2019 - 2024. All rights reserved.