markdown:通用html标签
标签后要加空格
块级元素:至少独占一行
行内元素:只占据自身所需空间
# 标题1
## 标题2
### 标题3
效果:
标题1
标题2
标题3
阅读更多...
阅读更多...
可靠信号(Reliable Signals): 这种信号在发送时不会丢失,系统会确保信号最终被接收。当进程处于阻塞状态时,可靠信号会被排队,直到进程解除阻塞后才被传递。SIGINT通常被认为是可靠信号。
不可靠信号(Unreliable Signals): 这种信号可能在发送时丢失,而且不会在信号过多导致排队不足时保存。进程在信号未被处理完全之前,可能不会接收到新的信号。SIGIO和SIGURG通常被认为是不可靠信号。
不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。非可靠信号一般都有确定的用途及含义,可靠信号则可以让用户自定义使用。
安全测试-主要针对的是sql注入
sql注入:允许攻击者将恶意SQL代码插入到应用程序的输入参数中,这些参数随后被传递给数据库服务器执行。
正逆向:主要考虑以下方面
接口测试正向:
接口测试逆向,主要考虑必填参数以下方面(同功能测试):
测试用例预期结果内容:
postman代码与断言:
1 | //保存json数据 |
1 | //判断响应状态码是否等于200 |
1 | //判断响应结果是否包含指定字符串 |
1 | //校验响应的JSON数据 |
.to:连接符,用于连接断言与判断
例子:
1 | //针对状态码 |
文档参数化:
将请求数据+预期结果放到json文件参数化
将测试数据放到json文件,只需一个请求就可以使用多个测试数据。
请求数据参数化,请求体数据参数化直接读取json文件,{{key}}
预期结果参数化,断言数据参数化直接读取json文件,data.key
allure使用步骤:
1 | --alluredir report |
pytest.ini
1 | [pytest] |
1 | 安装: |
pytest
生成报告
allure serve report
配置文件config.py
1 | # 存放被测试项目基本信息,如baseURL地址等 |
概念:以测试数据驱动脚本执行,维护焦点从脚本转向测试数据文件
好处:提高代码可维护性。脚本只需要介绍请求体数据即可,脚本不会有什么变化,只有测试数据会有变化
pytest中parametrize装饰器
作用:遍历所有测试数据并运行测试方法。
语法:
1 |
|
示例:
1 | # 测试数据 |
1 | # 前提:准备测试数据的json文件 |
添加元件类:
R
:矩形;L
:线段;0
:圆形;P
:绘画;T
:文本;操作类:
S
:图片切割;>
:预览原型;c
:图片裁剪;/
:发布原型到Axure云;x
:创建交互;0
:元件透明度0%和100%切换;N
:添加说明;1-9
:元件透明度10%-90%;动态面板可以固定到浏览器窗口,也可以多状态切换。
1.动态面板应用:列表1改变时,列表2也变。
实现:列表2用动态面板。操作是将列表2转换为面板,然后设置相应的状态。列表1使用选项改变时交互条件,然后选择设置动态面板,点击列表1对应选项后出现列表2不同面板状态用情形/条件即可。
2.动态面板应用:状态改变,轮播图等。
3.动态面板应用:拖动、固定位置的按钮、置顶按钮等。
热区放在底部可以作为锚点,保证页面能下滑到一定位置
中继器类似于组件,可以复用。中继器可排序筛选等
快速制作中继器:先用矩形制作表头,然后删除中继器原有的一个矩形,再复制表头到中继器。中继器每一行就是一个item项。
中继器应用场景:重复的组件操作,表单数据操作(增删改查,分页分项、排序等)
母版:创建一个母版,可以为多个页面添加相同的组件,母版变则所有页面也变。
母版引发事件:当母版上的某个选项在不同页面触发事件时执行结果不同,需要在母版里设置引发事件(相当于设置了专属于这个选项的一个事件等待触发),再到具体页面的母版位置触发该引发事件并设置动作。(母版里设置引发事件,具体页面里触发事件和设置动作。)
母版里设置了一个针对某一选项的事件(引用事件),在具体页面里对母版新建交互时,触发该事件并设置动作。
局部变量:作用域是单个组件内。可以获取到元件对象、数值、文字、被选项等,对象需要先获取并赋值给局部变量。
全局变量:作用域是不同页面间。在项目
中设置全局变量。
先获取到局部变量->再赋值给全局变量
获取元件
this:当前元件
target:目标元件
局部变量:获取任意元件
怎么安装多版本的node
要在同一台机器上安装多个版本的Node.js,可以使用nvm
(Node Version Manager)。以下是安装和使用nvm
来管理多版本Node.js的步骤:
安装nvm
:
对于macOS和Linux,可以使用curl
或wget
:
1 | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash |
对于Windows,可以使用nvm-windows
:
nvm-windows
安装程序:访问https://github.com/coreybutler/nvm-windows/releases安装Node.js特定版本:
1 | nvm install 14.17.0 |
切换到特定版本的Node.js:
1 | nvm use 14.17.0 |
确认当前使用的Node.js版本:
1 | node -v |
使用nvm
,您可以轻松切换和使用不同版本的Node.js,从而在同一台机器上安装和管理多个版本。
解决nvm下载慢的问题
在nvm安装目录的settings.txt下添加配置项
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
使用fnm
1 | # layouts.download.codeBox.installsFnm |
1 | function shuffle(array) { |
1 | const shuffle = (arr) => { |
map
方法用于遍历数组,并对数组中的每个元素执行提供的函数,生成一个新的数组。原数组不变。1 | //示例:根据pets数组,每次执行函数返回pets每一项的url,返回一个只有url的新数组urls |
forEach
方法用于遍历数组,为数组中的每个元素执行一次提供的函数。原数组不变。1 | const numbers = [1, 2, 3, 4]; |
map和foreach的区别:
forEach
没有返回值,总是返回undefined
;
forEach
无法终止或跳出循环(除非抛出一个异常);
map
返回一个新的数组,数组中的元素是原数组元素执行提供的函数后的结果;map因为返回数组所以可以链式操作,forEach不能;
map 的速度大于forEach;
1 | var arr = [1, 2, 3, 4, 5] |
应用场景:单选框全选后,全选框要自动选上。
Array.every((item) => item.selected === true),
Array.find((item) => 条件),找到符合条件的那一项。
const item = cartList.value.find((item) => item.skuId === skuId)
Array.findIndex( (item) => 条件),找到符合条件的下标。
const index = cartList.value.findIndex(item => skuId === item.skuId) //找到要删除的下标
累加:cartList.value.reduce((a,c)=>a+c.count,0),a为累加总数,c为cartList的每一项
Array.includes(),判断数组中是否存在某个值
1 | const numbers = [1, 2, 3, 4, 5] |
1 | const arr = ['a','b','c','d']; |
push,pop,shift,unshift,sort
请我喝杯咖啡吧~