51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师【长期招募】博为峰网校招聘兼职讲师!Appium移动自动化测试通关
一站式软件测试平台【专家87期】千里和你《软件测试轻松入门》!【51Testing专访】王磊:深度解析性能测试
测试知识大闯关103期活动热播中51测试天地 年底来赚零花钱吧!自学软件测试那点事
查看: 1285|回复: 8

Protractor 如何在webstorm中debug代码

[复制链接]
  • TA的每日心情

    2017-9-11 08:51
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]测试连长

    发表于 2017-8-13 20:39:04 | 显示全部楼层 |阅读模式
    1测试积点
    js菜鸟一枚,现请教各路大神,如何在webstorm中debug代码,代码结构如下。
    平时运行代码 1. webdriver-manager start   -->    2. protractor runner.js  
    代码会按照代码结构中 1,2,3,4的顺序相互调用完成每个测试step,现在我想debug step 2 里的某个方法,我该怎么做。


    Project
        config.js
        features
            test.js (2.定义了具体的测试step:  step1 login , step2  click  ..  button,  ......  step n Verify ......)
        pageObjects
            page1.js(4.step 具体实现)
            page2.js
        steps
            page1Step.js (3.声明 steps)
            page2Step.js
        runner.js (1. 里面配置引用了 test.js)



    回复

    使用道具 举报

  • TA的每日心情

    2017-9-11 08:51
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]测试连长

     楼主| 发表于 2017-8-14 08:47:13 | 显示全部楼层
    大神们多多指点阿  谢谢了
    回复

    使用道具 举报

  • TA的每日心情

    2017-9-11 08:51
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]测试连长

     楼主| 发表于 2017-8-16 08:36:34 | 显示全部楼层
    谢谢支持~
    回复

    使用道具 举报

  • TA的每日心情

    2017-9-11 08:51
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]测试连长

     楼主| 发表于 2017-8-17 20:06:34 | 显示全部楼层
    欢迎各路大神支招解惑~
    回复

    使用道具 举报

  • TA的每日心情

    2017-9-11 08:51
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]测试连长

     楼主| 发表于 2017-8-18 09:19:04 | 显示全部楼层
    anyone can help me.  
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-3-1 13:43
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    发表于 2017-8-24 14:55:10 | 显示全部楼层
    你的结构听上去有点迷糊
    我是分为3个文件
    page 放页面 spec放测试流程。
    step里面放具体步骤。要调用步骤
    只用改 spec就完了

    step

    'use strict';

    const step = function () {

        const page = require('./login.page.js');
        const EC = protractor.ExpectedConditions;

        this.go = () => {
            browser.get('/');
            browser.wait(EC.visibilityOf(page.loginButton), 5000, '登陆按钮没有显示')
            .then((result) => {
                 expect(result).toBe(true) })
        }

        this.login = () => {
            let user = constants.USERS.test;
            base.login(user);
        };

        this.logout = () => {
            browser.get('/');
            base.clickRead(page.menu,'个人设置菜单不可见');
            base.clickRead(page.logoutButton,'登出按钮不可见');
            browser.wait(EC.visibilityOf(page.loginButton), 5000, '登录按钮不可见')
            .then((result) => { expect(result).toBe(true) })
        }  
    }
    module.exports = new step();

    page
    'use strict';

    module.exports = {
        loginPage: element.all(by.css('[ui-view=content] p')),
        nameInput: element(by.id('username')),
        passwordInput: element(by.id('password')),
        loginButton: element(by.id('login-btn01')),
        menu: element(by.id('account-menu')),
        logoutButton: element(by.id('logout')),
        accountname: element(by.css('span.hidden-sm.ng-binding'))
    }

    spec
    'use strict';

    const step = require('./login.step.js');


    describe('login page', function () {


        it('should navigate to the login page', function () {
            step.go();
        });

        it('should navigate to the main page', function () {
            step.login();
        });

        it('should return to the login page', function () {
            step.logout();
        });

        /* */
    });
    回复

    使用道具 举报

  • TA的每日心情

    2017-9-11 08:51
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]测试连长

     楼主| 发表于 2017-8-27 07:53:59 | 显示全部楼层
    hyj785 发表于 2017-8-24 14:55
    你的结构听上去有点迷糊
    我是分为3个文件
    page 放页面 spec放测试流程。

    感谢你的回复,咱们的代码结构不太一样哦,按照你这种方式的话怎么进行的debug呢,能否举类详细说明一下,比如我想只debug login 方法,我该怎么做需要配置什么地方。
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-3-1 13:43
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    发表于 2017-8-31 16:49:09 | 显示全部楼层
         this.login = (user) => {
            let page = require('./login/login.page.js');
            let stant = this;
            browser.manage().deleteAllCookies();
            browser.get('/', 5000)
            browser.wait(EC.visibilityOf(page.nameInput), 50000, '名称输入文本框没有显示');
            page.nameInput.clear().sendKeys(user.name);
            page.passwordInput.clear().sendKeys(user.word);
            browser.wait(EC.textToBePresentInElementValue(page.nameInput, user.name), 5000);
            browser.wait(EC.textToBePresentInElementValue(page.passwordInput, user.word), 5000);
            page.loginButton.click();
            browser.wait(EC.visibilityOf(page.accountname), 5000, '账号名称不可见');
            page.accountname.getText().then((text) => {
                console.log(text);
                expect(text).toMatch(user.name);
            });
        }
    }

    一般情况下 都是用的console.log();
    我 用的 Visual Studio Code,debug工具是自带的  用法跟其他程序一样,加断点就可以了
    回复

    使用道具 举报

  • TA的每日心情

    2017-9-11 08:51
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]测试连长

     楼主| 发表于 2017-9-2 19:56:45 | 显示全部楼层
    hyj785 发表于 2017-8-31 16:49
    this.login = (user) => {
            let page = require('./login/login.page.js');
            let sta ...

    console.log 这种方式也还好,visual studio code里打断点就可以实现走到断点处代码停下来么,我在
    webstorm里可以打断点但是不能停下来的。
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2017-11-21 00:57 , Processed in 0.203970 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表