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:WindowsSystem32driversetchosts文件
你经常使用哪些工具查看HTTP报文?Chrome检查、Fiddler、HttpWatch(只支持ie、Firefox)等工具。
发送Get请求,请举出一些报文的字段名,并解释其意义
原始格式:
GET / HTTP/1.1
Host: www.baidu.com
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造数据 http://blog.csdn.net/benpaobagzb/article/details/48036905
大量数据,编写Python的脚本,生成一个sql的脚本,包括很多Insert into table_name (字段1,) values (值1,); 用sql语句或者工具,导入文件即可。MySQL里有load data infile *.sql文件
列举一个你印象中最深的bug。列举你在做自动化过程中遇到的问题,以及是怎么解决的?
印象中最深的bug,不代表是最难的,有可能是最近的。
低级错误。例如:配置文件配置错误、网络iptables防火墙端口被封、打包不完整。
高端的bug,例如:app耗电量比较高、内存使用比较高,内存泄漏、FPS手机流畅度,默认刷新频率60次/秒,20-30次/秒。
参考链接: https://tech.meituan.com/Dianping_Shortvideo_Battery_TestCase.html
重要的是把”奇怪问题”的排查思路、方法给出来,最后确定出问题(发现重要的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回归。
Python+Selenium+Unittest+HTMLReport做自动化项目。
项目间周期要足够长>=8个月,人力安排3~4人、技术积累。
后续的迭代很频繁。重复性劳动比较多。
Python常用的数据结构有哪些?举出一些例子来。
Python常用的模块有哪些?举例说明,怎么安装?pip在线安装/离线安装。发挥ddt在项目中应用,装饰器(语法糖);读Excel表格(xlrd)、csv文件到程序中、数据库的连接等。
写一个Python的脚本,打印9*9乘法表,算法。【杀伤指数*****】
写一个Python脚本,算法题
Selenium常用API,并不难
异常处理,try … except …. 等等
web元素的定位、使用了哪些工具?Chrome检查、Firefox查看元素/FirePath
定位常用的方法?xpath一定要熟练掌握。如://*[@id=’username and @name=’yonghuming’]
单线程、多线程与多进程的区别
线程和进程的区别,线程优缺点:线程是cpu调度的最小单元,调度成本很低、线程共享变量也更加方便,创建线程的成本很低。缺点是,多线程程序一旦一个线程出现问题,很容易影响其他线程。
进程优缺点:进程是资源调度的最小单元,进程里至少包含一个线程,进程的独立性比较好。缺点:进程的创建成本比较高,占用资源也比较高、共享资源的时候不太方便。
Linux 查看CPU的使用情况
Top 、sar
参考资料: http://jingyan.baidu.com/article/4d58d5412917cb9dd4e9c0ed.html
Linux命令相关
用Linux命令操作另外一台服务器
Xshell工具使用的是SSH协议,
ssh root@192.168.2.37 连接
从一台Linux拷贝一个tar包到另外一台Linux机器上
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的加密方式,需要导入网站的证书。
参考链接: http://www.jianshu.com/p/54dd21c50f21
tcp/ip协议族,三次握手、四次握手原理和区别
数据库里索引的好处、如何创建、删除索引?考察语法、以及索引的优势。
创建/删除索引的语法:
CREATE INDEX 索引名称 on GC_DFSS(no);
DROP INDEX 索引名称;
创建索引的好处:
帮助用户提高查询速度
利用索引的唯一性来控制记录的唯一性
可以加速表与表之间的连接
降低查询中分组和排序的时间
创建索引的坏处:
存储索引占用磁盘空间
执行数据修改操作(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命令大全
https://blog.csdn.net/androidstar_cn/article/details/52782863
简述自动化测试框架
简述如何把自动化测试脚本集成到Jenkins系统中?
最新评论