Python相关的问题

语法基础知识,常见的数据类型、语句表达、异常处理等
常用的模块要熟悉,seleniumweb自动化框架、unittest单元测试模块、appium模块、HTMLTestRunner模块、HTMLReport模块、操作系统相关osplatform模块、re模块
遇到其他的模块ini文件解析、csv文件读取、Excel文件读写模块(xlrd、xlwt等),如果不会,就必应搜索。

HTTP协议及其常用头信息。

HTTP协议是一种超文本传输协议,处在OSI七层协议的应用层。是一种最常用的无状态协议。
主要涉及两种动作GetPost,有什么区别?
URL(网址)的地址格式是什么?协议名称、域名/ip、端口号、资源路径、多个参数,用&符合连接
访问一个网址,会经历什么状态转换?输入地址、域名解析、发送Get请求报文、等待、收取相应报文,考点包括Fiddler抓包、Httpwatch等抓包工具。

域名解析DNS做什么的?怎么查?本地域名解析应该怎么配置?配置C:WindowsSystem32driversetchosts文件

自动化工程师面试常见问题-风君雪科技博客

你经常使用哪些工具查看HTTP报文?Chrome检查、FiddlerHttpWatch(只支持ieFirefox)等工具。

发送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协议80HTTPS协议,443
ssh协议默认是22
Ftp协议默认是21
Oracle默认端口1521
MySQL默认端口3306
SQL Server默认端口1433

接口测试如何批量造测试数据?(高频)

少量数据,用数据库的存储过程、SQL语句,适用于造的数据量比较小,(使用Excel做规划)
(常用,有效)从生产环境导出以后做”脱敏”处理,再导入测试数据库。
使用JmeterJDBC 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的项目目录的组织结构,测试计划、测试套件、测试用例的组织
资源文件的组织,三层架构的组织模型。
里面会涉及到常用库Selenium2LibraryDatabaseProcess等。

这个项目里写了多少条测试用例,几个人做的、用了多长时间,写的是什么类型的自动化。

冒烟测试:打出包来,先用冒烟测试跑一边。运行时间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的区别,加密的原理,怎么用抓包工具去看数据

区别:httpshttp+ssl)安全性更高、端口不一样,443SSL加密

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分钟,超时以后会自动化再生成一个值。

HTTPHTTPS的区别

Adb命令大全

https://blog.csdn.net/androidstar_cn/article/details/52782863

简述自动化测试框架

自动化工程师面试常见问题-风君雪科技博客

简述如何把自动化测试脚本集成到Jenkins系统中?

自动化工程师面试常见问题-风君雪科技博客