【测试工程师面试】详细记录 自己的一次面试
【测试工程师面试】详细记录 自己的一次面试
目录:导读
Linux基础
Oracle基础
编程基础
测试的基础
面试的问题
扯闲话部分:
10点刚到,先进行笔试,笔试的题目很基础,涉及到linux,涉及到oracle数据库,涉及编程基础,涉及测试理论,但是你读完题目和写完也要是花时间的。我花了40分钟左右的时间才写完。
Linux基础
1. 查看a.txt文件中bbb字符串
grep 'bbb' a.txt
2. 改变a.txt的所属者为Lisa
chown Lisa:Lisa a.txt
chown Lisa a.txt 【只让改所属者,没让改所属组】
3.查看conrob进程的命令
ps -ef | grep conrob
4.vi命令下,向上移动光标,向下移动光标
上下左右 kjhl【这四个键盘很好记,右手习惯的几个键,h最左右所以向左,l最右边,jk是先下后上】
5.将文件a.txt排序生成b.txt
sort a.txt >b.txt
6. 不保存文件退出命令
末端模式下输入q!【Esc : q!】
7. 查找当前目录以及子目录下文件后缀是xxx的文件
find ./ -name *.xxx
8. 显示日期的命令
date
Oracle基础
【oracle数据库我好久没有遇到了,查询sql根据mysql和sqlserver写的,也不敢太用别名,怕错】
1.给a表创建联合索引 name+bb+cc
create index ind_name on tablea(name,bb,cc)
2.赋予用户alex update delete a表的权限
grant update,delete on tablea to alex
3.查看a表中的所有记录且姓名不在b表中的
select * from tablea where name not in (select distinct name from tableb)
【我想了想加了个distinct在b表中】
4. 查询b表中的唯一的卡号
select cardnum from tableb group by cardnum 【起初不小心加了distinct,然后想想把它给划了】
5. 查询b表中币种是RMB且地区是深圳的贷款总和
select sum(amount) from tableb where city = 'shenzhen' and bizhong='RMB'
【起初没看到只要差RMB,还多此一举,
select bizhong, sum(amount) from where city = 'shenzhen' group by bizhong, 也不知道后来有没有多划掉】
6. 复制b表的结构到新表
create table tablec as select * from tableb where 1=2
【之前没印象,用的mysql格式CREATE TABLE 新表 LIKE 旧表 】
7. 查询b表中姓名和卡号,要求同一个卡号既有人民币消费,又有美金消费
select name, cardnum from tableb group by name, cardnum having count(*) >=2
【我做这样的题目有各种疑问,比如消费金额为0的记录,算不算?虽然解决办法很简单,加上一个where amount> 0 即可,
但是proc测试多了,一眼瞄过,对各个字段就不免想多了,
我10点钟才到,11点半吃饭,又怕做题太长,最终影响人家interviewer的情绪,也让我。。。】
8.用一个select查询表表中姓名和卡号,要求美金中显示2条消费最大的记录,rmb中显示两条最大的记录
select name , cardnum ,rownum from tableb where bizhong = 'dollor' and rownum<=2
order by amount desc
union all
select name , cardnum ,rownum from tableb where bizhong = 'rmb' and rownum<=2
order by amount desc
编程基础
1.java中==和equals的区别
==是表示值和内存地址完全一致
equals判断值是否相等
详细的判断https://www.cnblogs.com/qianjinyan/p/10553414.html
2.一个java中能有多个类吗?为什么?
一个.java源文件中可以有多个类吗?(内部类除外)有什么条件?
可以的
但是只能有一个public类, 而且如果有public类的话,这个文件的名字要和这个类的名字一样。
如果都没有public类,名字可以不和这个类一样。
3.将x/y/z 从大到小输出
int[] a ={x,y,z}
for (int i=0;i<a.length()-1;i++){
for (int j=0;j<a.length()-1;j++){
if (a[j]<a[j+1])
temp =a[j];
a[j]=a[j+1];
a[j+1] = temp;
}}
自己写错了,下面才是正确的。
int[] array = {1,8,0,3,4,2};
@Test
public void Test02() {
for(int i=0;i<array.length-1;i++){
for (int j = 0; j < array.length - 1 - i; j++) {
//后面的数大,往前放置,降序排列
//if(array[j+1]>=array[j]){
//后面的数小,往前放置,升序
if(array[j+1]<array[j]){
int temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
for(int a: array){
System.out.print(a + " ");}
}
System.out.println("第"+i+"的时候");}
}
for(int a: array){
System.out.println(a);}
}
@Test//利用Arrays中的Sort函数排序
public void ArraysSort() {
Arrays.sort(array); //默认升序排列
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}}
4. python2.1和python3.1的默认字符编码?
'ascii'
'utf-8'
猜也能猜到,但我懒得写。python的确不熟
5.python中分割aa_bb_cc,
s1="aa_bb_cc"
s1.split('_')
6.如何用python将整型1输出为0001
测试的基础
1. 软件测试的意义
2. bug的生命周期
3. 常见的测试方法
4. 你常用的自动化测试工具?
接口用Jmeter和httpClient
UI用 selenium和macaca
5. 一个文本框,输入6的字符,要求输入的年份在199001到204912月,要求前四位是年,后两位是月,请设计测试用例并说明
写完给HR打电话,之后直接一面。
面试的问题
1. 讲一个具体的接口,你是怎么测试的,怎么实现自动化的?
针对http接口进行测试,使用Jmeter工具实现。
Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http接口的测试。
一、开发接口测试案例的整体方案:
我们起初会得到一个CR文档,CR文档里列出里客户此次的痛点和痒点,还有PM列出的解决方案。比如要开发什么接口,以达到什么目的。
这种接口是一次性使用,做活动用的,还是日常使用等等的说明。
第一步:CR文档下来之后,我会分析出测试需求,大概知道会怎么实现,对对CR有疑问的地方,做下标记;等到下次全项目开会,提出疑问,确保测试、开发和PM对需求的理解是一致的。会议上也会阐述大概的实现方式,涉及的表,是否用触发器,等等的问题。会议之后可以拿到开发提供的接口说明文档;
第二步:从接口说明文档中整理出接口测试案例,里面要包括详细的入参和出参数据以及明确的格式和检查点
第三步:和开发一起对接口测试案例进行评审。
第四步:结合开发库,准备接口测试案例中的入参数据和出参数据,并整理成csv格式的文件。
第五步:结合接口测试案例文档和csv格式的数据文档,做接口测试案例的自动化案例开发。
对于大一点的公司,用Jmeter编写自动化脚本,真的很low吧。我也觉得很low,但是不得不说完全够用,还极其容易上手。
对数据处理灵活,断言,数据落地,都可以查询和验证。
2. 端到端的测试你们做过吗?
3. 性能测试关注点是什么?
我们通常认为的规定的指标是:
服务器资源使用情况,不管是中间件服务器, 还是DB服务器,从内存,到CPU,不超过70%
从响应的结果来看,错误率不超过1%,甚至要求错误率更低;基本上实践当中,不超过0.1%;
平均响应时间不超过3秒,视查询条件而定,有的要求是不超过2秒;
90%的响应时间不超过3秒。
你们不看TPS吗?TPS知道吗?
也要看啊,我还没讲完呢。 每秒中的处理请求的数量啊~~
TPS是受木桶原理影响,要看每一处的配置的。【后悔没多说点,抬头对上interviewer的眼神,这个话题就完了】
扯闲话部分:
你们公司的开发测试的比例是怎样的?我们是 4:1?
你们公司系统的中间件是什么?
性能测试中,你有进行性能调优吗?
嗯,验证过很多接口,有的定量需求,比如要求某个接口的TPS达到500. 如果第一次性能测试,能达到500,也就够了,没有下文了;但是这个是注册接口,随着时间推移,DB服务器资源CPU到内存都吃的越来越紧,发现TPS下降了,之后越来越低。
什么原因造成的?
DB服务器的原因。这个一个nosql数据库,以前这个接口是能达到500TPS的,但是随着微信绑定推出unionid后,需要增加新的字段,新的表;而这种DB对查询条件需要加索引,要不然不支持查询。
表中数据量越来越多,又有很多字段添加了索引,当数据量达到千万级别之后,添加索引消耗DB的资源,也明显感受到占用了时间。 导致接口查询慢,新增也慢。
有别的调优吗?
还有发现,若干个字段,因为没有加索引,导致查询接口TPS不高等问题;
项目中有用hibernate的,有时候定位比较难,因为sql都是hibernate拼接的。
4. 有没有自己创新什么工具,用来提高效率的?
自己回答
5. oracle中分页怎么实现的?
oracle很久没用,打错了,我回答的是跟mysql差不多吧,用limit的?
用limit?
后来发现用rownum
6. selenium在你们的测试过程中也用?还用吗? 有没有什么问题?浏览器兼容性问题能做到吗?
差不多就这么多了,接下来到面试者问问题时间。
总体感觉就是, 自己就像一个AI,面试官问什么,自己回答什么,没有做必要的延伸,没有引入自己的话题。
总体感觉就是面得不好。
我想说我也可以开发自动化测试平台,只是还不太成熟。因为都是一个人做,时间和能力都有限,不知道用什么技术,架构,要增加什么。
一个能拿offer的面试文档
如果有需要请 留言:
【软件测试面试题】
写在最后
如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!
看到这篇文章的人有觉得我的理解有误的地方,也欢迎评论和探讨~
你也可以加入下方的的群聊去和同行大神交流切磋
相关文章:
【测试工程师面试】详细记录 自己的一次面试
【测试工程师面试】详细记录 自己的一次面试 目录:导读 Linux基础 Oracle基础 编程基础 测试的基础 面试的问题 扯闲话部分: 10点刚到,先进行笔试,笔试的题目很基础,涉及到linux,涉及到oracle数据库…...
Elasticsearch 安装(二)
目录前言一、Linux 安装1、下载安装包⑴、选择需要的安装包⑵、下载解压到安装目录2、查看解压后目录结构3、启动 Elasticsearch⑴、正常启动流程⑵、启动过程遇到的问题①、启动报错②、创建运行 Elasticsearch 的用户,启动成功,但无法访问③、停止Elas…...
Java基础:异常与错误(ExceptionError)
1 缘起 某天上网冲浪时,偶然看到一个问题,说Java的Error和Exception有什么区别? 一句话:不知道。并不能很清晰地描述出个中区别。 当然,曾经也看过Throwable相关的知识,但是,并没有通过源码及注…...
VAmPI:一个包含了OWASP Top10漏洞的REST API安全学习平台
关于VAmPI VAmPI是一个包含了OWASP Top10漏洞的REST API安全学习平台,该平台基于Flask开发,该工具的主要目的是通过一个易受攻击的API来评估针对API安全检测工具的有效性,并帮助广大研究人员学习和了解API安全。 功能介绍 1、基于OWASP Top…...
springboot(6)之前端传递参数的方式 普通 集合 数组
实体类传递 首先我们在后端定义一个实体类,通过lombok插件重写 有参 无参 get set toString 方法, 然后前端发送数据,后端就会自动收到,然后属性填写 后端代码如下 AllArgsConstructor Data NoArgsConstructor public class role …...
redis分布式锁的演变过程
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、直接添加Redis缓存二、使用setnx执行抢锁过程三、setnx获取锁+设置过期时间四、引入UUID解决误删锁问题五、引入Lua脚本来做删除六、对递归部分优化进行自旋七、添加自旋次数八、改为重入锁,使…...
leaflet 修改popup的样式,个性化弹窗(069)
第069个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中修改popup组件的样式,个性化弹窗。主要方法是更改css, 中增加custom-popup类名,style的样式要做穿透处理 >>>.具体方法请参考源代码。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实…...
注解ConfigurationProperties、EnableConfigurationProperties的用法
1 ConfigurationProperties ConfigurationProperties主要作用就是将prefix属性指定的前缀配置项的值绑定到这个JavaBean上 ,通过指定的前缀,来绑定配置文件中的配置。这样的好处是将配置数据与JOPO进行转换,能够管理一个类别的所有配置信息&…...
自适应布局之淘宝无限适配+rem+微信rpx自适应
一、自适应布局 所谓前端适配,就是为了让移动设计稿在大部分的移动设备上看起来有一致的展示效果,目前比较流行的方法有两种。一种是强制meta viewport宽度为设计稿宽度,一种是使用rem自适应布局的flexible.js。 二、当前流行的移动端自适应…...
esxi不能识别不兼容网卡解决方案
相信很多网友在安装测试VMWARE Esxi 6.0的时候,总会遇到无法兼容网卡的情况,本人也是遇到了再组装的台式机上测试ESXI 6.0的时候,无法识别REALTEK RTL 8111E的情况。 找了很多网友提供的博客,方法是正确的,但是不够严…...
Sizeof与Strlen的区别与联系
16年写了很多 C 与 C 相关的文章,但是后面从事了 Android 开发,就全部删掉了,无意中发现了这篇由还存在草稿箱,索性就找回来吧,也是追忆当年学习的青葱岁月 Sizeof与Strlen的区别与联系 一、sizeof sizeof(…)是运算…...
力扣(LeetCode)413. 等差数列划分(2023.02.15)
如果一个数列 至少有三个元素 ,并且任意两个相邻元素之差相同,则称该数列为等差数列。 例如,[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是等差数列。 给你一个整数数组 nums ,返回数组 nums 中所有为等差数组的 子数组 个数。 …...
蓝桥杯刷题——基础篇(一)
这部分题目,主要面向有志参加ACM与蓝桥杯竞赛的同学而准备的,蓝桥杯与ACM考察内容甚至评测标准基本都一样,因此本训练计划提供完整的刷题顺序,循序渐进,提高代码量,巩固基础。因竞赛支持C语言、C、Java甚至…...
Java基础知识快速盘点(三)
一,构造器 创建一个类的方法时会调用该类的构造器 构造器,也叫构造方法 构造器是属于类的,对象不可调用 构造方法没有返回值类型 构造方法一般用public修饰,也可用private修饰,例如 public class Test {private T…...
vscode编程小插件之Doxygen和Better Align
一、插件Doxygen:配置相应文件、函数说明项。 1、扩展商店,搜索Doxygen,如下图1,安装。 图1 2、设置项中,选择扩展设置,如图2 图2 3、配置版本、作者邮箱、作者名称、日期格式等等,如图3 4、定义函数后&…...
指 针
1.指针指针的作用: 可以通过指针间接访问内存(可以通过指针的保存一个地址(指针--地址))内存编号是从0开始记录的,一般用十六进制数字表示。可以利用指针变量保存地址指针变量的定义和使用指针变是定义语法: 数据类型 …...
安卓小游戏:俄罗斯方块
安卓小游戏:俄罗斯方块 前言 最近用安卓自定义view写了下飞机大战、贪吃蛇、小板弹球三个游戏,还是比较简单的,这几天又把俄罗斯方块还原了一下,写了一天,又摸鱼调试了两天,逻辑不是很难,但是…...
NC113 验证IP地址
验证IP地址_牛客题霸_牛客网 描述 编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址 IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为 0 - 255, 用(".")分割。比如,172.16.254.1&#…...
珠宝企业如何利用私域实现业绩增长?
近年来私域的流量不断兴起,各行业都在做私域,所处行业不同,企业所采取的私域打法也会针对性地改变。而在珠宝行业,针对珠宝产品高价、低频的消费特点,企业又该如何搭建私域应对策略? 快鲸scrm系统整理了几…...
回收站清空了还能找回来吗?回收站恢复的4个方法(最全)
回收站作为一个数据回收的地方,可以保存已删除的文件很久,直到用户手动永久删除这些数据,这为用户避免了许多数据丢失的问题。但是回收站数据过多,难免会影响电脑的运行速度。为此,我们都会定期进行清理。 清理过程中…...
深度解析React性能优化API
性能优化一直是前端领域讨论的一个热门问题,但在平时沟通及code review过程中发现很多人对于React中性能优化理解很模糊,讲不清楚组件什么时候更新,为什么会更新,关于React性能优化的文章虽然比较多,但大多数都是在罗列…...
算法刷题打卡第91天:统计一个圆中点的数目
统计一个圆中点的数目 难度:中等 给你一个数组 points ,其中 points[i] [xi, yi] ,表示第 i 个点在二维平面上的坐标。多个点可能会有 相同 的坐标。 同时给你一个数组 queries ,其中 queries[j] [xj, yj, rj] ,表…...
sentinel持久化方案
一.sentinel规则推送原理 1.原有内存规则存储原理 (1)dashborad中请求到服务器后,在controller中通过http把规则直接推送给client,client接收后把规则放入内存; 2.持久化推送规则原理 ![在这里插入代码片](https://img-blog.csdnimg.cn/1…...
软件项目进度安排与跟踪:关键路径的计算
在一个软件项目中,管理人员需要按时了解项目进度,制定项目计划,同时需要及时发现所遇到的问题,然后和团队成员制定解决方案,确保整个计划可以顺利的进行,因此项目进度安排与跟踪是项目管理中的一个重要环节…...
mac m2 处理器 iterm2 sz rz 出错/无限重试
mac m2 处理器 iterm2 sz rz 出错/无限重试 1、背景 apple m 系列处理器安装的 homebrew 跟 intel 处理器略有不同,其中安装目录的区别: m 系列处理器安装目录为 /usr/local/bin/homebrewintel 处理器安装目录为 /opt/homebrew 其中 m 系列处理器安装…...
Mysql 与 磁盘交互的过程
从之前的Mysql架构可以了解到,Mysql 客户端不是直接和磁盘打交道,我们在客户端输入的sql语句会被发送给服务端,服务端对sql语句进行解析、缓存等操作,然后再交由存储引擎去读写磁盘。这其实是从 C/S 的角度去了解Mysql。 站在OS的…...
Spring Cloud Gateway集成Nacos实现负载均衡
💡Nacas可以用于实现Spring Cloud Gateway中网关动态路由功能,也可以基于Nacos来实现对后端服务的负载均衡,前者利用Nacos配置中心功能,后者利用Nacos服务注册功能。接下来我们来看下Gateway集成Nacos实现负载均衡的架构图一. 环境…...
Excel图表教程_编程入门自学教程_菜鸟教程-免费教程分享
教程简介 Excel图表初学者教程 - 从简单和简单的步骤学习Excel图表从基本概念到高级概念,包括简介,创建图表,类型,柱形图,折线图,饼图,圆环图,条形图,面积图,…...
2023最新的接口自动化测试面试题
1、请结合你熟悉的项目,介绍一下你是怎么做测试的? -首先要自己熟悉项目,熟悉项目的需求、项目组织架构、项目研发接口等 -功能 接口 自动化 性能 是怎么处理的? -第一步: 进行需求分析,需求评审&#…...
AcWing语法基础课笔记 第一章 C++入门及简单的顺序结构
第一章 C入门及简单的顺序结构 编程是一种控制计算机的方式,和我们平时双击打开文件、关机、重启没有任何区别。 ———闫学灿 C中常用的变量类型 和所占字节大小 输出变量地址符: 软件环境 作业的评测与提交 在线练习地址:www.acwing.com …...
上海网站建设治汇网络/seo搜索引擎招聘
安装驱动 insmod dev.ko 查看主设备号 cat /proc/devices 创建设备文件 mknod /dev/dev0 c 主设备号 0 c表示字符型设备 使用设备时 fdopen("/dev/dev0",O_RDWR);...
网站引导动画怎么做/优化设计答案六年级上册
这个属性是只读的,传回值有以下的可能: 0-UNINITIALIZED:XML 对象被产生,但没有任何文件被加载。 1-LOADING:加载程序进行中,但文件尚未开始解析。 2-LOADED:部分的文件已经加载且进行解析&am…...
炽乐清网站建设/网页制作的软件有哪些
日志按天记录,自动生成当天的记录文件 日志分级存储(info,error) Springboot有自带日志,但只是类似于System.out.printl();的简单输出: //增加日志 private final Logger log LoggerFactory.g…...
网站设计论文前言怎么写/世界杯32强排名
public class Test { //外部类public static void main(String[] args) {EnclosedClazz enclosedClazz new EnclosedClazz();//这里返回的实际是一个InnerSon对象Father f enclosedClazz.test();//定义在test()里的内部类对象is,存活到现在//父类引用指向子类对…...
建设金融网站哪家好/seozou是什么意思
顶管施工其实就是我们平时说的不开挖或者非开挖施工啦,其原理是借助于主顶油缸及管道间、中继间等推力,把工具管或掘进机从工作坑内穿过土层一直推进到接收坑内吊起。管道紧随工具管或掘进机后,埋设在两坑之间。为了响应中央的号召࿱…...
大型平面设计网站/seo站内优化包括
% 注意哦,Matlab中的图节点要从1开始编号,所以这里把0全部改为了9 % 编号最好是从1开始连续编号,不要自己随便定义编号 s [9 9 1 1 2 2 2 7 7 6 6 5 5 4]; t [1 7 7 2 8 3 5 8 6 8 5 3 4 3]; w [4 8 3 8 2 7 4 1 6 6 2 14 10 9]; G g…...