赞
踩
为什么是三次握手而不是两次?
为了确保通信双方都有能力发送并接受响应;
为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。
简单理解:
1.客户端发送连接请求报文给服务器端
2.服务器端接收到报文后进行确认,返回报文给客户端
3.客户端收到报文后再给服务器端发送报文,告诉服务器端我收到了
从而建立了连接 这个就是三次握手
客户端发起断开连接:
1.客户端给服务器端发送FIN报文 表示要断开连接
2.服务器端发送ACK报文给客户端 说我收到了
3.服务器端给客户端发送FIN报文 我可以断开连接了
4.客户端收到后给服务器端发送ACK报文 服务器端收到后进入close状态,2MSL时间后客户端进入close状态
get和post都是HTTP请求两种基本方式
协议对客户端没有状态存储,对事物处理没有记忆功能;
后续的处理中需要前面的信息,就必须重传
connection:keep-alive字段实现长连接
SSL连接:依靠证书验证服务器的身份,并为浏览器和服务器之间的通信加密
客户端发起一条到服务端的TCP连接,随后的数据传输都在这条TCP连接上
TCP连接建立完成后,客户端向服务器端发送报文,服务端用证书回应
客户端从证书中提取
协议:计算机之间为了能够实现网络通信而达成的一种约定,有了这种约定,不同厂商的生产设备,不同的操作系统组成的计算机之间就可以实现通信
HTTP、HTTPS:
DUBBO:
cookie:
session:
token:
UDP:
TCP:
查询范围:浏览器缓存、本地host文件、路由器缓存、DNS服务器缓存、根域名服务器
number of thread:线程数,运行的线程数设置,一个线程对应一个用户
Ramp-up period(seconds): 线程启动开始运行的时间间隔,单位秒,即所有线程在多长时间内开始运行
如果线程设置50 时间间隔为10秒:表示50个线程在10秒内启动,每秒启动5个线程;如果设置0秒,表示50个线程立即启动
下图中表示:200个线程1秒内启动
一台机器的资源不足以支撑压测需求,我们需要分布式执行,即就是一台控制机带着N多台执行机同时跑脚本
提取器:
如果返回值中有数组,则$.data[0].xx
正则表达式提取器:“libraryId”:(\d+)
说明:\d 匹配数字 +重复一次或多次
正则表达式提取器举例:
FileCopyUtils.copy(file,new File(""));
ID、className、name、tag_name、link_text、partial_link_text、xpath、cssSelector
(1)显示等待:等待某个条件成立时继续执行;
使用:只关心某一个元素是否出现,不关心其他元素时 可以使用显示等待;
即:当前元素出现,进行下一步操作,其他元素是否出现没有关系
WebDriverWait webDriverWait = new WebDriverWait(driver,3);
WebElement element = webDriverWait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("")));
(2)隐式等待:等待页面元素全部加载完成
使用:全局概念,需要页面所有元素全部加载完成才会执行后续操作;
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS); 单位自己指定
(3)强制等待:固定时间的休眠
Thread.sleep(3000); 单位是毫秒
docker容器+jenkins+git
接口自动化测试框架介绍:
java+testng+httpcilent+extentreports+poi+jpaRepository
封装了:
UI自动化测试框架介绍:
接口开发完成了,可以随时介入进行测试
String param = URLEncodedUtis.formate(List,utf-8");
把list转换成key=value&key2=value2的形式
自我介绍
为什么要做测试
软件测试的理解
bug生命周期
测试方法
测试用例的编写
性能测试和安全性测试
测试流程
找到bug需要做的事情
项目
url自动化测试
黑盒白盒
等价类
junit的使用方法
为什么要来北森,了解我们公司吗
职业规划
(只问测试相关的内容,没有别的)
自我介绍
对于测试的理解
为啥做测试
http请求类型
项目(问的满细的)
你的项目怎么测试
了解的自动化测试工具
未来规划
蓝牙耳机测试
啥时候能实习
反问。
一面:
一面:
自我介绍
对测试的理解
测试的工作
设计摄像头的测试用例
你发现了一个bug后该怎么做
如果开发不认为这是一个bug,你怎么做
怎样判定是不是一个bug
drop和delete的区别
having短语的使用
数据库多表连接命令
Linux中在A目录下打开B目录的命令
Linux修改用户权限
http和https的作用
OSI七层模型
Python的元组和列表的区别(因为我会Python所以会问)
链表和数组的区别
40分钟
1.自我介绍
2.项目:TestNG、Appium、postman
如何让一些测试用例在回归的时候重跑
TestNG框架、标签
ui自动化的原理
3.你用过postman 对于Http协议有什么了解么?
4.状态码304、503
5.你比较擅长的语言是java是吧,简单说一下Map
6.编程:整型数组,求出最大组合的数:[11,2] 输出211.... 测试一下你的方法:测试用例
7.在做项目的时候遇到过哪些坑呢?如何解决的?
8.职业规划
9.能不能提前实习
10.反问
说一下快排的思路
SQL内连接,左链接,右链接
1.自我介绍
2.为什么从开发转测试
3.测试和开发的区别
4.web app测试不同点
5.了解微服务吗
6.阿里云服务器
7.前端语言
8.测试工作风险评估
9.怎么保证测试用例覆盖率
10.测试流程
11.https怎么加密的
12.说一下tcp ip
13.后端用了哪些技术框架
14.评价自己优缺点
15.开发提测晚,或出现不可解决的问题,怎么办
16.一个高效的bug
17.性能测试,为什么会导致cpu 内存过高
18。自动化用例有多少条,跑一个自动化需要多久
1、自我介绍
2、自动化接口测试
单元测试,集成测试,系统测试,验收测试,回归测试
项目背景、测试范围以及测试内容、bug清单、测试结论、测试风险(客观原因无法测试的内容,一些未修复的bug说明原因)
前端:
后端:
抓包工具/浏览器开发者工具抓包:
发现、提交、分配、确认、修复、验证、关闭,如果验证不正确 再次打开、分配、确认、修复、验证、直到关闭
单个电梯场景:
多个电梯场景:
where:用于在初始表中筛选查询符合条件的数据,作用在行上
having:筛选出符合条件的组,作用于组上
执行顺序:SFWGHO租户
select、where、group by、having、order by
select region、sum(money) from tableName group by region
按照表中一个或者多个字段,将数据进行分组,一般用于数据进行分类汇总,select后面的字段,只要是group by后面的字段;如果展示其他的列,需要使用聚合函数(sum、max、min、average)
9、drop和delete的区别:
drop:删除表
delete:清空表数据
关联查询效率高
6
3 9
1 2 4 5 7 8 10 11
优点:
不是
关系型数据库(MySQL、Oracle、SQLserver、postgresql)
数据结构是表,由二维表及其的联系组成的一个数据组织
非关系型数据库:(MongoDB、Redis、nosql)
是一种数据结构花存储方式的集合,可以是文档或者键值对
数据结构相对复杂,复杂查询稍欠缺
能被4整除且不能被100整除 或 能被400整除
public static void main(String [] args){
System.out.println("请输入任意IP:");
Scanner scanner = new Scanner(System.in);
String input = scanner.next();
boolean flags = isIp(input);
if (flags){
System.out.println("是IP");
}else {
System.out.println("不是IP");
}
}
private static Boolean isIp(String input){
if( input == null || input == ""){
System.out.println("IP为空");
return false;
}
if(input.length()<7 || input.length()>15){
System.out.println("IP长度不对");
return false;
}
if(input.startsWith(".") || input.endsWith(".")){
System.out.println("IP开始或结尾是.");
return false;
}
String [] arr = input.split("\\.");
if(arr.length != 4){
System.out.println("IP位数不对");
return false;
}
for (int i=0;i<arr.length;i++){
if(arr[i].length()>1 && arr[i].charAt(0)=='0'){
System.out.println("IP每位数格式不对");
return false;
}
for (int j=0;j<arr[i].length();j++){
if(!Character.isDigit(arr[i].charAt(j)) || (arr[i].charAt(j)<'0' && arr[i].charAt(j)>'9')){
return false;
}
}
}
for (int i=0;i<arr.length;i++){
int temp = Integer.parseInt(arr[i]);
if(i==0){
if(temp<1 || temp>255){
return false;
}
}else {
if(temp<0 || temp>255){
return false;
}
}
}
return true;
}
描述:除了1和它本身以外不再有其他的除数整除
public static void main(String [] args){
System.out.println("请输入任意数字:");
Scanner scanner = new Scanner(System.in);
int input = scanner.nextInt();
if(input<1){
System.out.println("請輸入正確的數");
return;
}
//1----10^0
//2----10^0+10^1
//3----10^0+10^1+10^2
int sum = 0;
int temp = 0;
for (int i=0;i<input;i++){
temp += Math.pow(10,i);
sum += temp;
}
System.out.println(sum);
}
算法描述:斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368……
特别指出:第0项是0,第1项是第一个1。
这个数列从第三项开始,每一项都等于前两项之和
算法描述:
1. 比较相邻两个数据如果 第—个比第二个大,就交换两个数
2. 对每一个相邻的数做同样1的工作,这样从开始一队到结尾—队在最后的数就是最大的数。
3. 针对所有元素上面的操作,除了最后一个
4. 重复1~3步骤,知道顺序完成。
算法描述:
1. 在一个长度为 N的无序数组中,第一次遍历 n-1 个数找到最小的和第一个数交换。
2. 第二次从下一个数开始遍历 n-2 个数,找到最小的数和第二个数交换。
3. 重复以上操作直到第n-1次遍历最小的数和第 n-1 个数交换,排序完成。
算法描述:
1. 从数列中挑出—个元素作为基准。
2. 重新排列数列,把所有的比基准小的放在基准前面,反之放在后面(—样大可任意·边)完成后基准处在分区的中间位置。
3. 通过遍归调用把小于基准元素和大雨基准元素印乃子序列进行排序。
mkdir -p a/b/c
touch a.txt
(1)全文替换所有的hi为hello:
sed -i ‘s/hi/hello/g’ a.txt
(2)替换每行第二个hello为world
sed -i ‘s/hello/world/2’ a.txt
(3)替换第2行所有内容为‘new’:
sed -i '2c new' a.txt
(4)替换第2到6行内容为newtest:替换后4行内容变成1行newtest
sed -i '2,6c newtest' a.txt
(1)cat:查看全部内容
(2)head:查看前x行 head -n x c.txt
(3)tail:查看后x行 tail -n x c.txt
(4)tail -f 动态查看 tail -20f c.txt 动态查看近20行内容
(5)查看日志中的关键字 并返回关键字所在行:cat a.txt | grep 'xxx'
(6)如何快速定位到日志中的报错信息:
(1) 以行统计 出现多少行: cat a.txt | grep ‘hi’ | wc -l
(2) 如果一行中重复出现,统计一次: cat a.txt | grep ‘hi’ | wc -l
如果一行中重复出现,统计多次: cat a.txt | grep -o ‘hi’| | wc -l
在文件或者字符串中指定的规则浏览和抽取信息。把文件逐行读入,以空格为默认分隔符将每行切片,然后再进行后续的处理
给命令传递参数的过滤器,善于把标准数据转换为命令行参数,在这里则将获取前一个命令的标准输出然后转换为命令行参数
ps -ef | grep java | grep -v grep | awk ‘{print $2}’ | xargs kill -9
linux日志关键字查找:grep 关键字1 文件名 | grep 关键字2 | more
修改文件/文件夹的访问权限
-R 进行递归的持续变更,连同次目录下的所有文件都变更
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
chgrp [-R] 属组名文件名
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。