⾃动化⼯程师⾯试常见问题
Python相关的问题
语法基础知识,常见的数据类型、语句表达、异常处理等
常⽤的模块要熟悉,selenium的web⾃动化框架、unittest单元测试模块、appium模块、HTMLTestRunner模块、HTMLReport模块、操作系统相关os、platform模块、re模块
遇到其他的模块ini⽂件解析、csv⽂件读取、Excel⽂件读写模块(xlrd、xlwt等),如果不会,就必应搜索。
HTTP协议及其常⽤头信息。
HTTP协议是⼀种超⽂本传输协议,处在OSI七层协议的应⽤层。是⼀种最常⽤的⽆状态协议。
主要涉及两种动作Get、Post,有什么区别?
URL(⽹址)的地址格式是什么?协议名称、域名/ip、端⼝号、资源路径、多个参数,⽤&符合连接
访问⼀个⽹址,会经历什么状态转换?输⼊地址、域名解析、发送Get请求报⽂、等待、收取相应报⽂,
考点包括Fiddler抓包、Httpwatch等抓包⼯具。
域名解析DNS做什么的?怎么查?本地域名解析应该怎么配置?配置C:\Windows\System32\drivers\etc\hosts⽂件
你经常使⽤哪些⼯具查看HTTP报⽂?Chrome检查、Fiddler、HttpWatch(只⽀持ie、Firefox)等⼯具。
发送Get请求,请举出⼀些报⽂的字段名,并解释其意义
原始格式:
GET / HTTP/1.1
Host:
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: BAIDUID=2104300EC605A9E08EA32612A01F262F:FG=1; BIDUPSID=2104300EC605A9E08EA32612A01F262F;
PSTM=1509085581; FP_UID=fa3fdfd3b09abd048258f11bda75d52b; BD_UPN=12314353; ispeed_lsm=20
整理以后,如下图所⽰:
个人简历表格免费模板
解析Response响应报⽂,主要包括响应头+响应体。请举出⼀些响应头字段。
请列举⼀些HTTP code(状态码),分别代表什么意义?
常见端⼝有哪些?
HTTP协议80、HTTPS协议,443
ssh协议默认是22
Ftp协议默认是21
Oracle默认端⼝1521
MySQL默认端⼝3306
SQL Server默认端⼝1433
接⼝测试如何批量造测试数据?(⾼频)
少量数据,⽤数据库的存储过程、SQL语句,适⽤于造的数据量⽐较⼩,(使⽤Excel做规划)
(常⽤,有效)从⽣产环境导出以后做"脱敏"处理,再导⼊测试数据库。
使⽤Jmeter中JDBC Sampler,编写SQL语句,使⽤函数助⼿⽣成随机参数,设置迭代次数,执⾏。参考链接:使⽤Jmeter造数据
⼤量数据,编写Python的脚本,⽣成⼀个sql的脚本,包括很多Insert into table_name (字段1,) values (值1,); ⽤sql语句或者⼯具,导⼊⽂件即可。MySQL⾥有load data infile *.sql⽂件
列举⼀个你印象中最深的bug。列举你在做⾃动化过程中遇到的问题,以及是怎么解决的?
印象中最深的bug,不代表是最难的,有可能是最近的。
低级错误。例如:配置⽂件配置错误、⽹络iptables防⽕墙端⼝被封、打包不完整。
⾼端的bug,例如:app耗电量⽐较⾼、内存使⽤⽐较⾼,内存泄漏、FPS⼿机流畅度,默认刷新频率60次/秒,20-30次/秒。
重要的是把"奇怪问题"的排查思路、⽅法给出来,最后确定出问题(发现重要的bug)。
⾯试官考察的是,应聘者的解决问题的能⼒。
Postman⼯具做接⼝测试,主要⽤于做接⼝的功能测试。
接⼝测试的⼀般流程。确定接⼝⽂档:地址、输⼊参数、输出参数、错误参照码、接⼝⽤途、⽰例。
在没有接⼝⽂档的时候怎么做接⼝测试?
⾸先你要知道为什么必须需要接⼝⽂档。
如果没有的话,就需要协助开发⼈员把⽂档整理出来。
对接⼝进⾏优先级处理,并且使⽤适当的⼯具进⾏测试。
Jmeter做接⼝测试或者压⼒测试。
你经常⽤的Jmeter元件有哪些?Jmeter元件的作⽤域是什么?
需要设置什么类型的配置元件,设置cookies管理器、http头信息等。
设置项⽬结构,以及添加相应的Sampler(采样器)
添加断⾔与,⽅便调试。
分布式环境的搭建(伪分布式)
命令⾏的使⽤并⽣成报告(jmeter3.1以后的版本)
如何与持续集成相结合
Robot Framework做⾃动化项⽬
搭建环境,⼀步⼀步搭建,平安、移动,环境部署是开发写的⼀键部署包。
优点:适合技术功底⽐较弱、项⽬周期⽐较短、也需要快速⾃动化⼀批⽤例。
robot的项⽬⽬录的组织结构,测试计划、测试套件、测试⽤例的组织
资源⽂件的组织,三层架构的组织模型。
⾥⾯会涉及到常⽤库Selenium2Library、Database、Process等。
这个项⽬⾥写了多少条测试⽤例,⼏个⼈做的、⽤了多长时间,写的是什么类型的⾃动化。
冒烟测试:打出包来,先⽤冒烟测试跑⼀边。运⾏时间3~5分钟,测试⽤例(不同逻辑)50条以内、编写1~2周完成。
专项测试:对某⼀部分的功能逻辑、⽤例深度⽐较⼤,需要⼈⼒2⼈,测试⽤例100条左右。场景会更加丰富,⽐如垃圾清理功能会准备很多种环境、app启动时间的测试
全功能测试:回归测试,耗费时间可能要40分钟以上,测试⽤例数1000条以上,投⼊3~4⼈,周期3~
4个⽉,主要完成所有测试⽤例的跑通,防⽌bug回归。
360重装系统检测硬盘异常
Python+Selenium+Unittest+HTMLReport做⾃动化项⽬。
项⽬间周期要⾜够长>=8个⽉,⼈⼒安排3~4⼈、技术积累。
后续的迭代很频繁。重复性劳动⽐较多。
Python常⽤的数据结构有哪些?举出⼀些例⼦来。
Python常⽤的模块有哪些?举例说明,怎么安装?pip在线安装/离线安装。发挥ddt在项⽬中应⽤,装饰器(语法糖);读Excel表格(xlrd)、csv⽂件到程序中、数据库的连接等。
写⼀个Python的脚本,打印9*9乘法表,算法。【杀伤指数*****】
linux显卡驱动安装写⼀个Python脚本,算法题
Selenium常⽤API,并不难
异常处理,try … except …. 等等
web元素的定位、使⽤了哪些⼯具?Chrome检查、Firefox查看元素/FirePath
定位常⽤的⽅法?xpath⼀定要熟练掌握。如://*[@id='username and @name='yonghuming']
单线程、多线程与多进程的区别
线程和进程的区别,线程优缺点:线程是cpu调度的最⼩单元,调度成本很低、线程共享变量也更加⽅便,创建线程的成本很低。缺点是,多线程程序⼀旦⼀个线程出现问题,很容易影响其他线程。
进程优缺点:进程是资源调度的最⼩单元,进程⾥⾄少包含⼀个线程,进程的独⽴性⽐较好。缺点:进程的创建成本⽐较⾼,占⽤资源也⽐较⾼、共享资源的时候不太⽅便。
Linux 查看CPU的使⽤情况
Top 、sar
汽车spring是什么意思Linux命令相关
⽤Linux命令操作另外⼀台服务器
Xshell⼯具使⽤的是SSH协议,
ssh root@192.168.2.37 连接
从⼀台Linux拷贝⼀个tar包到另外⼀台Linux机器上
python基础知识测试
scp ping.log root@192.168.2.171:/root/rs.log
如何查看进程监听的端⼝?
netstat -an | grep httpd
ss
如何查看进程的id,并杀死进程
ps -ef | grep httpd
Kill -9 pid
可能会要求你编写⼀些shell脚本(Linux命令有⼀定的语法规则等)
http与HTTPS的区别,加密的原理,怎么⽤抓包⼯具去看数据
区别:https(http+ssl)安全性更⾼、端⼝不⼀样,443,SSL加密
HTTPS的请求响应流程(SSL协议)
使⽤抓包⼯具(如Fiddler)去检查
如果要测试你⾃⼰的⽹站,https的加密⽅式,需要导⼊⽹站的证书。
tcp/ip协议族,三次握⼿、四次握⼿原理和区别
数据库⾥索引的好处、如何创建、删除索引?考察语法、以及索引的优势。
创建/删除索引的语法:
CREATE INDEX 索引名称 on GC_DFSS(no);
DROP INDEX 索引名称;
创建索引的好处:
帮助⽤户提⾼查询速度idea编程什么意思
利⽤索引的唯⼀性来控制记录的唯⼀性
可以加速表与表之间的连接
降低查询中分组和排序的时间
创建索引的坏处:
存储索引占⽤磁盘空间
执⾏数据修改操作(INSERT、UPDATE、DELETE)增加索引维护成本
存储过程是怎么写的,考察语法规则
------------存储过程定义开始-------------------
CREATE OR REPLACE PROCEDURE sp_update_sal(name in varchar)
--通知Oracle数据库去创建⼀个名叫 sp_update_sal 的存储过程,如果已经存在,就覆盖
IS
-- is关键字表明后⾯跟随的是⼀个 PL/SQL 体
BEGIN
-- begin关键字表明 PL/SQL 体的开始
UPDATE emp SET sal = sal + 1 WHERE ename = name;
COMMIT;
END sp_update_sal;
--end关键字表明 PL/SQL 体结束
------------存储过程定义结束-------------------
select * from emp;
---存储过程的执⾏,需要在命令窗⼝执⾏
exec sp_update_sal('andy');
cookies、sessionid,token的原理和区别
Cookies,指某些⽹站为了辨别⽤户⾝份,写在客户端浏览器的cookies⾥,每次请求都会⾃动添加到Request Header⾥。
Session:进⾏session跟踪⽽储存在⽤户本地终端上的数据(通常经过加密),服务器端也会存放session。
Token(类似于Appkey):是为了替代⽤户名、密码在传输中不安全,⽽特定⽣成的⼀串字符。每次登录后会动态⽣成⼀个token值,⼀般有效期30分钟,超时以后会⾃动化再⽣成⼀个值。
HTTP和HTTPS的区别
Adb命令⼤全
简述⾃动化测试框架
简述如何把⾃动化测试脚本集成到Jenkins系统中?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。