在量角器测试用例中从电子邮件中获取值

在量角器测试用例中从电子邮件中获取值,第1张

量角器测试用例中从电子邮件中获取值

这是我最近解决的问题。希望该解决方案也适用于您的用例。

先决条件:

  • mail-listener2
  • 对概念的理解
    promises

分步说明:

  1. 安装
    mail-listener2
        npm install mail-listener2 --save-dev
  1. 在量角器配置中, 初始化Mail Listener 并使其全局可用:
        onPrepare: function () {        var MailListener = require("mail-listener2");        // here goes your email connection configuration        var mailListener = new MailListener({ username: "imap-username", password: "imap-password", host: "imap-host", port: 993, // imap port  tls: true, tlsOptions: { rejectUnauthorized: false }, mailbox: "INBOX", // mailbox to monitor  searchFilter: ["UNSEEN", "FLAGGED"], // the search filter being used after an IDLE notification has been retrieved  markSeen: true, // all fetched email willbe marked as seen and not fetched next time  fetchUnreadOnStart: true, // use it only if you want to get all unread email on lib start. Default is `false`,  mailParserOptions: {streamAttachments: true}, // options to be passed to mailParser lib.  attachments: true, // download attachments as they are encountered to the project directory  attachmentOptions: { directory: "attachments/" } // specify a download directory for attachments         });        mailListener.start();        mailListener.on("server:connected", function(){ console.log("Mail listener initialized");        });        global.mailListener = mailListener;    }),    onCleanUp: function () {        mailListener.stop();    }, 
  1. 创建一个帮助
    getLastEmail()
    函数,该函数将等待
    email
    检索到:
        function getLastEmail() {        var deferred = protractor.promise.defer();        console.log("Waiting for an email...");        mailListener.on("mail", function(mail){ deferred.fulfill(mail);        });        return deferred.promise;    };
  1. 测试用例示例:
        describe("Sample test case", function () {        beforeEach(function () { browser.get("/#login"); browser.waitForAngular();        });        it("should login with a registration pre sent to an email", function () { element(by.id("username")).sendKeys("MyUserName"); element(by.id("password")).sendKeys("MyPassword"); element(by.id("loginButton")).click(); browser.controlFlow().await(getLastEmail()).then(function (email) {     expect(email.subject).toEqual("New Registration Code");     expect(email.headers.to).toEqual("myemail@email.com");     // extract registration pre from the email message     var pattern = /Registration pre is: (w+)/g;     var regCode = pattern.exec(email.text)[1];     console.log(regCode);  });        });    });


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5566545.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存