storage封装

一、cookie、localstorage、sessionstorage 三者的区别
1、存储大小:cookie4K、storage5M
2、有效期:cookie拥有有效期,storage永久存储
3、cookie会发送到服务器端,存储在内存中,storage只存储在浏览器端
4、路径:cookie有路径限制,storage住存储在域名下
5、API:cookie没有特定的API,storage有对应的API

二、为什么要封装storage
1、storage本身有API,但是只是简单的key/value形式
2、storage只存储字符串,需要手工转换成json对象
3、storage只能一次性清空,不能单个清空

// 封装sessionStorage
const STORAGE_KEY = 'mall'

export default {
    // 设置值
    setItem(key, value, module_name) {
        if (module_name) {
            let val = this.getItem(module_name)
            if (val) {
                val[key] = value
                this.setItem(module_name, val)
            }
        } else {
            let val = this.getStorage()
            val[key] = value
            window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(val))
        }
    },
    // 获取某一个模块下面的属性user->username
    getItem(key, module_name) {
        if (module_name) {
            let val = this.getStorage()[module_name]
            if (val) return val[key]
        }
        return this.getStorage()[key]
    },
    // 获取所有storage对象
    getStorage() {
        return JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || '{}')
    },
    clear(key, module_name) {
        let val = this.getStorage()
        if (module_name) {
            if (val[module_name]) {
                delete val[module_name][key];
            }
        } else {
            delete val[key]
        }
        window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(val))
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
封装Playwright是指将Playwright的功能进行封装,以便在前端自动化测试中更方便地使用。下面是关于封装Playwright的两个方面的介绍: 1. 优化类型约束和提示:通过自定义泛型工具获取函数第二个参数类型[^1]。 ```typescript export type GetSecondArgs<T> = T extends (_: any, arg: infer R) => any ? R : any; ``` 这段代码定义了一个泛型工具`GetSecondArgs`,它可以用来获取函数类型的第二个参数类型。在封装Playwright时,可以使用这个工具来提供更准确的类型约束和提示。 2. 用户鉴权相关:在封装Playwright时,可以使用全局设置(globalSetup)来执行一段脚本,在其中进行用户登录并保存登录状态。 ```typescript const config: PlaywrightTestConfig = { globalSetup: require.resolve('./global-setup/index.ts') } ``` 这段代码中的`globalSetup`指定了一个脚本文件,该文件会在执行用例之前被触发。在这个脚本中,可以执行用户登录操作,并将登录状态保存到文件中,以便后续的用例可以读取该文件进行登录鉴权。 另外,在页面中使用`storageState`选项可以实现保存用户状态。 ```typescript import { test } from '@playwright/test'; test.use({ storageState: 'adminStorageState.json' }); ``` 这段代码中的`storageState`选项指定了一个存储状态文件,该文件包含了用户的登录状态。在测试中使用这个选项,可以在每次运行测试时自动加载用户状态,从而实现用户鉴权。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值