• 自动化工程师面试常见问题


    • 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系统中?

         

  • 相关阅读:
    AC日记——[ZJOI2012]网络 bzoj 2816
    [USACO08FEB]酒店Hotel 线段树
    divisors 数学
    Count on a tree 树上主席树
    STL备忘
    [TJOI2013]松鼠聚会 曼哈顿距离
    斐波那契数列 矩阵乘法优化DP
    [TJOI2013]奖学金 乱搞
    铁轨 清北学堂 线段树
    P3939 数颜色 线段树动态开点
  • 原文地址:https://www.cnblogs.com/bull_think/p/9925263.html
Copyright © 2020-2023  润新知