关于面试--------

关于面试--------,第1张

关于面试-------- 关于抓包工具fiddler?

1、Fiddler怎么拦截篡改数据
①临时修改请求
即在fiddler中执行Inspectors->WebForms,修改请求变量参数后执行Run to Completion,服务器返回新的请求结果
②永久性修改请求
1)命令行设置修改规则,修改请求:urlreplace 旧请求值 新请求值
fiddler命令行输入:urlreplace uuid=103 uuid=105
其中uuid是请求参数,输入命令后回车即可,新的请求设置成功,除非释放请求,否则请求值不变,释放请求命令urlreplace
2)脚本中修改规则,打开脚本方式:fiddler执行Rules->Customize Rules
2、打断点
①fiddler菜单栏->rules->automatic Breakpoints->选择断点方式,这种方式下设定的断点会对之后的所有HTTP请求有效。有两个断点位置:
1)before request。也就是发送请求之前,Fiddler代理中转之前,这时可以修改请求的数据。
2)after response。也就是服务器响应之后,但是在Fiddler将响应中转给客户端之前。这时可以修改响应的结果。
3)如何消除命令呢?点击Rules->Automatic Breakpoint->Disabled
3、Fiddler怎么模拟弱网测试
1、Rules – Customize Rules(快捷键Ctrl + R)打开Fiddler scriptEditor
Ctrl + F 查找m_SimulateModem标志位
2、找到onBeforeRequest,修改上行上传速度/下行下载速度的 参数,如你要模拟上传速度100KBps的 网络,那上传延迟就是1KB/100KBps=0.01s=100ms,就改成100。
3、打开fiddler,Rules –> Performances –> Simulate Modem Speeds 勾当选中此选项网速就会变很 慢,这样就实现了弱网络效果
4、如何使用Fiddler抓取手机上的数据包?
Fiddler开启服务
手机安装Fiddler证书
手机设置代理
同网段

关于性能测试工具jmeter?

1、常用哪些组件
测试计划、线程组、http请求、监听器、断言、聚合报告。
2、一般提取返回值有哪些方式
正则表达式、json提取。
3、断言有哪几种方式
响应断言、JSON断言(只能针对响应结果是applicaton/json格式的请求进行断言)、BeanShell断言
4、你平时常用的内置函数有哪些**
__digest:用于加密、__time:时间函数、__Random:取随机数、__RandomString:取在规定范围内的随机字符串、__V函数用户定义变量、用户参数、__setProperty:设置全局变量、_counter:计数器、__groovy:传递脚本并返回结果

关于性能测试?

1、你们性能测试是怎么做的,它的流程是怎么样的
首先确定需求,然后对需求进行分解,再进行用例设计,针对场景设计脚本,再执行脚本。最后根据结果出具性能测试报告。
2、如何确定系统能够承载的最大用户数?
通过负载测试,不断增加用户数,随着用户数的增加,各项性能指标也会相应产生变化,当出现了性能拐点,比如,当用户数达到某个数量级时,响应时间突然增长,那么这个拐点处对应的用户数就是系统能承载的最大用户数。(做负载测试时一般用jp@gc,通过阶梯式看性能拐点。)
3、性能测试指标有哪些?
平均事务响应时间,90%的事务响应时间,TPS,CPU、内存和IO使用率
4、你们的并发用户数是怎么确定的?
根据需求来确定,比如用户注册数,如果需求没有说明,首先就是梳理需求,然后需求分解,进行模型构建和用例设计,再根据不同的场景设计脚本,然后根据模型构建的 *** 作流程进行基准测试,得到平均响应时间,再加上用户的思考时间,运用公司线程数=业务量*[单次业务消耗时间/(60*并发的时间)]
5、性能测试遇到过哪些问题,是怎么解决的?
性能指标不达标。首先看是不是网络问题,ping一下IP地址,然后再看是不是服务器性能。
1、查看服务器的CPU、内存 、负载等情况,包括应用服务器和数据库服务器
2、查看数据库健康状态,数据库死锁、连接池不释放
3、查看项目日志(查看无报错现象)
4、查看jvm的gc等情况
6、基准测试、压力测试、负载测试有什么区别?
基准测试:测试某个具体业务是否满足系统设计or用户期望的性能指标。如期望登录接口支持500个用户并发登录,同时响应时间不超过需求指,满足则认为基准测试完成。
负载测试:不断的增加线程数,直到达到一定的瓶颈。
压力测试:通过最大负载数,持续压测的时长,以此验证业务的稳定性。

关于接口测试?

**1、请问你是如何做接口测试的?
根据接口文档设计测试用例,执行测试用例,提交bug,跟踪bug,直到关闭bug,然后出具接口测试报告。
2、接口测试如何设计测试用例?
从四个方面来设计用例,功能、业务逻辑、异常、安全。
功能方面:从用户角度看是否实现业务需求,功能是否正常。
业务逻辑方面:接口实现逻辑,业务逻辑覆盖。
异常:参数异常和数据异常。
安全:cookie、header。
3、post和get请求的区别?
1、get相比post更不安全。
2、get参数url可见,postURL参数不可见。
3、get通过拼接URL进行传递参数,post通过body传递参数。
4、get请求是可以缓存的,post请求不可以缓存。
5、get请求页面后退时,不产生影响。post请求页面后退时,会重新提交请求。
6、get一般不超过2k-4k。post根据php.ini配置文件设定。
7、get产生一个tcp数据包,post产生两个tcp数据包。
4、接口调不通,怎么去排查?
首先检查ip是否正确,ping本机的ip,检查网络是否通畅。检查端口号是否正确,检查项目是否启动。
5、接口测试的意义?
能更早的介入测试,能发现前端发现不了的漏洞,与前端相比更为稳定。
6、接口响应状态码?
200请求成功
301页面重定向
404没找到资源
500服务器错误
401证书错误
403权限错误
400开头是网络错误
500开头是服务器问题
404有可能是前端写错了接口的名字
400可能是前端传入的参数不正确
7、http和https协议区别?
http不加密,https加密。http端口是80,https是443.
8、三次握手、四次挥手?
第一次握手,发送端:什么都确认不了;接收端:对方发送正常,自己接受正常
第二次握手,发送端:对方发送,接受正常,自己发送,接受正常 ;接收端:对方发送正常,自己接受正常
第三次握手,发送端:对方发送,接受正常,自己发送,接受正常;接收端:对方发送,接受正常,自己发送,接受正常

主动断开方(客户端/服务端)-发送一个 FIN,用来关闭主动断开方(客户端/服务端)到被动断开方(客户端/服务端)的数据传送
被动断开方(客户端/服务端)-收到这个 FIN,它发回一 个 ACK,确认序号为收到的序号加1 。和 SYN 一样,一个 FIN 将占用一个序号
被动点开方(客户端/服务端)-关闭与主动断开方(客户端/服务端)的连接,发送一个FIN给主动断开方(客户端/服务端)
主动断开方(客户端/服务端)-发回 ACK 报文确认,并将确认序号设置为收到序号加1
9、怎么判断前后端bug?**

关于接口测试工具postman?

1、postman中有哪些变量可以设置?
数据变量 > 本地变量 > 环境变量 > 全局变量
本地变量:主要针对单个url请求设置的变量,作用域只是局限在请求范围内。本地变量放置在前置请求脚本(pre-request-script)中
全局变量:全局变量的作用域是所有请求,界面设置(globals里面设置)/脚本设置(pre-requests script 右侧选择global)
环境变量:测试环境,线上环境,预发布环境。environments里面可以添加,执行接口的时候可以选择不同的环境。
数据变量-参数化:是通过导入外部数据文件(json文件或者CSV文件),来获取变量数据
tests:后置请求结果
2、当前接口的请求数据用到上一个接口的响应数据?
设置tests,进行批量 *** 作
在登录接口获得token,并设置token变量,在下一个接口中请求头中引用token。

关于数据库?

新增数据sql:insert into 表名(字段名1,字段名2) value(字段值1,字段值2);
修改数据sql:updata 表名 set 字段名=字段值 where 条件;
查找数据sql:select (字段名,*代表全部) from 表名 where 条件;
删除数据sql:delete from 表名 where 条件;
多表查询使用什么关键字?
join on
分组,排序倒序?
group by
order by desc

关于Linux?

Linux命令?
pwd 查看当前工作目录
clear 清除屏幕
cd ~ 当前用户目录
cd / 根目录
cd - 上一次访问的目录
cd … 上一级目录
ll 查看当前目录下内容(LL的小写)
mkdir aaa 在当前目录下创建aaa目录,相对路径;
mkdir ./bbb 在当前目录下创建bbb目录,相对路径;
mkdir /ccc 在根目录下创建ccc目录,绝对路径;
mkdir -p temp/nginx
find / -name ‘b’ 查询根目录下(包括子目录),名以b的目录和文件;
find / -name ‘b*’ 查询根目录下(包括子目录),名以b开头的目录和文件;
mv 原先目录 文件的名称 mv tomcat001 tomcat
mv /aaa /bbb 将根目录下的aaa目录,移动到bbb目录下,在bbb,麚也叫aaa目录;
mv bbb usr/bbb 将当前目录下的bbbb目录,移动到usr目录下,并且修改名称为bbb;
cp -r /aaa /bbb 将/目录下的aaa目录复制到/bbb目录下,在/bbb目录下的名称为aaa
cp -r /aaa /bbb/aaa 将/目录下的aa目录复制到/bbb目录下,且修改名为aaa;
rm -rf /bbb 强制删除/目录下的bbb目录。如果bbb目录中还有子目录,也会被强制删除,不会提示;
rm -r /bbb 普通删除。会询问你是否删除每一个文件
touch testFile
vim a.java 进入一般模式
i(按键) 进入插入模式(编辑模式)
ESC(按键) 退出
:wq 保存退出(shift+:调起输入框)
:w! 不保存退出(shift+:调起输入框)
cat a.java 查看a.java文件的最后一页内容;
more a.java 从第一页开始查看a.java文件内容,按回车键一行一行进行查看,
按空格键一页一页进行查看,q退出;
less a.java 从第一页开始查看a.java文件内容,按回车键一行一行的看,
按空格键一页一页的看,支持使用PageDown和PageUp翻页,q退出;
tail -f a.java 查看a.java文件的后10行内容;
grep under 123.txt 在123.txt文件中搜索under字符串,大小写敏感,显示行;
grep -n under 123.txt 在123.txt文件中搜索under字符串,大小写敏感,显示行及行号;
grep -v under 123.txt 在123.txt文件中搜索under字符串,大小写敏感,显示没搜索到的行;
grep -i under 123.txt 在123.txt文件中搜索under字符串,大小写敏感,显示行;
grep -ni under 123.txt 在123.txt文件中搜索under字符串,大小写敏感,显示行及行号;
ctrl+z
ctrl+c

关于查看日志?

app查看日志:下载模拟器、把apk安装到模拟器里面,在模拟器的目录打开cmd,输入nox_adb.exe logcat。
web端查看日志:xshell连接服务器,输入IP 账号和密码 连接成功后进入相关项目下的报错日志的目录下(路径可以找开发要)tail-f查看最新10条。tail-n-100指定多少行日志。

关于ui自动化? 关于接口自动化? 关于Python?

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5678054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存