You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Protractor Jasmine实现Angular4应用Form1与Form2 E2E测试链式执行

实现Protractor Jasmine中Form1与Form2的链式E2E测试

要实现分文件的链式测试且共享登录状态,核心是让所有测试复用同一个浏览器会话,同时确保Form1测试完成后浏览器处于Form2页面。下面是具体的实现方案:

1. 修改Protractor配置文件(protractor.conf.js)

首先要关闭浏览器在测试文件间的自动重启,这样整个测试流程会使用同一个浏览器实例,登录状态会被保留。同时指定测试文件的执行顺序,确保Form1先运行:

exports.config = {
  // 其他配置项...
  restartBrowserBetweenTests: false, // 关键:禁用浏览器重启
  specs: [
    './e2e/form1.test-spec.ts', // 先执行Form1测试
    './e2e/form2.test-spec.ts'  // 再执行Form2测试
  ],
  // 其他配置项...
};

2. 调整Form1的测试文件(form1.test-spec.ts)

只在全局的beforeAll中执行一次登录,测试用例完成Form1的填写和提交后,确保浏览器导航到Form2页面:

describe('Form 1 Test', function() { 
  beforeAll(() => { 
    commonService.doLogin(); // 仅登录一次
  }); 

  it('should fill and submit Form1 successfully, navigate to Form2', () => { 
    // 1. 填写Form1的逻辑
    element(by.id('form1-input-name')).sendKeys('Test User');
    element(by.id('form1-input-email')).sendKeys('test@example.com');
    // ... 其他Form1字段填写

    // 2. 提交Form1
    element(by.id('form1-submit-btn')).click();

    // 3. 验证已跳转到Form2页面(确保后续测试的起始状态正确)
    expect(browser.getCurrentUrl()).toContain('/form2');
  }); 
});

3. 编写Form2的测试文件(form2.test-spec.ts)

由于浏览器已经保留了登录状态,且处于Form2页面,直接编写Form2的测试逻辑即可,无需再次登录:

describe('Form 2 Test', function() { 
  it('should fill and submit Form2 successfully', () => { 
    // 直接操作Form2元素,无需登录
    element(by.id('form2-input-address')).sendKeys('123 Test St');
    element(by.id('form2-input-phone')).sendKeys('1234567890');
    // ... 其他Form2字段填写

    // 提交Form2并验证结果
    element(by.id('form2-submit-btn')).click();
    expect(element(by.css('.success-message')).isDisplayed()).toBeTruthy();
  }); 
});

关键原理说明

  • restartBrowserBetweenTests: false:这个配置让Protractor在所有测试文件执行期间复用同一个浏览器实例,因此登录状态、Cookie、localStorage等都会被保留。
  • 测试顺序控制:通过在specs数组中指定文件顺序,确保Form1测试先完成,浏览器处于正确的Form2页面后,再执行Form2的测试。
  • 状态验证:在Form1的测试结尾添加URL验证,确保后续Form2测试的起始状态是正确的,避免因页面跳转失败导致的测试错误。

如果需要在测试失败后终止后续执行,可以考虑使用Jasmine的fail-fast插件,但默认情况下Jasmine会继续执行所有测试用例。

内容的提问来源于stack exchange,提问作者stuckoverflow24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:36:27