51Testing软件测试论坛

标题: 强大的全新 Web UI 测试框架 Cypress - 只测该测之处 [打印本页]

作者: 悠悠小仙仙    时间: 2019-4-16 14:17
标题: 强大的全新 Web UI 测试框架 Cypress - 只测该测之处
在用Selenium、RT或其他web UI自动化工具时,为了保证测试用例的独立性,通常需要做必要setUp和tearDown,比如常见的登录和登出,而用UI来做登录和登出是很耗时的(目前的工具对cookie、localStorage等支持都不够友好),在大量的UI自动化用例运行时,登录和登出耗时比例不可忽视。Cypress基于异步JS实现,几乎可以无限制的操作浏览器存储!真正让你做到“钱(Time)要花在刀刃上”!

自定义登录指令
  1. Cypress.Commands.add('login', (userType, options = {}) => {
  2.   // this is an example of skipping your UI and logging in programmatically

  3.   // setup some basic types
  4.   // and user properties
  5.   const types = {
  6.     admin: {
  7.       name: 'Jane Lane',
  8.       admin: true,
  9.     },
  10.     user: {
  11.       name: 'Jim Bob',
  12.       admin: false,
  13.     }
  14.   }

  15.   // grab the user
  16.   const user = types[userType]

  17.   // create the user first in the DB
  18.   cy.request({
  19.     url: '/seed/users', // assuming you've exposed a seeds route
  20.     method: 'POST',
  21.     body: user,
  22.   })
  23.   .its('body')
  24.   .then((body) => {
  25.     // assuming the server sends back the user details
  26.     // including a randomly generated password
  27.     //
  28.     // we can now login as this newly created user
  29.     cy.request({
  30.       url: '/login',
  31.       method: 'POST',
  32.       body: {
  33.         email: body.email,
  34.         password: body.password,
  35.       }
  36.     })
  37.   })
  38. })
复制代码

调用自定义指令
  1. describe("测试模块名", function() {
  2.   beforeEach(function() {
  3.     cy.login("admin");
  4.   });
  5.   it("测试用例名", function(){
  6.    ....
  7.    // 真正的测试代码
  8.    ....
  9. })
  10. })
复制代码





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2