自动化面试题

自动化篇

  1. 怎么样的项目适合做自动化测试
    • 项目变动少
    • 项目周期长
    • 项目资源(人力)足够
    • 回归测试工作量大
  2. 你做过自动化测试吗?
    做过
  3. 你会用自动化脚本测试接口吗,怎么测得
    会,使用python的requests库模拟http和https请求,对返回结果做断言;不同的测试数据可以使用数据驱动的形式,框架可使用pytest
    常用的有两种方式,
    一是使用工具
    - 常用的有Postman和Jmeter,辅助工具有浏览器开发者工具和Fiddler
    - 如果单纯做接口测试,不需要做性能测试,Postman更常用,压测、性能Jmeter更常用
    - Postman可以很方便的编写接口测试用例,并添加前置断言,后置动作,环境变量等;并且可以导出为json脚本,通过newman命令行集成到Jenkins上,生成html格式报告,可通过allure或htmlextra报告进行美化
    - Jmeter可以轻松模拟大批量的并发数,给系统造成压力,并且集成influxDB和Grafana进行性能测试并实时监控系统指标
    二是用代码实现
    - 通过Python+Pytest+requests库+Git+jenkins搭建基于数据驱动的接口测试自动化框架,并通过github同步代码,Jenkins持续集成
  4. 自动化测试流程?
    • UI自动化
      • 需求分析
      • 筛选需要实现自动化的功能
      • 设计测试用例--可从手工用例中挑选
      • 搭建测试环境
      • 搭建自动化测试框架
      • 编写代码
        • 封装页面对象基类、页面对象类(包括页面元素类和页面动作类),测试用例脚本,data、report、log、img、config、utils
      • 通过github同步代码
      • 生成报告并美化(allure)
      • 通过Jenkins实现持续集成
    • 接口自动化
      • 需求分析
      • 筛选需要实现自动化的接口-可从接口用例中挑选
      • 搭建自动化测试框架
      • 编写代码
      • 通过Python+Pytest以数据驱动的方式实现接口自动化-生成报告-结果分析,data、report、log、img、config、utils
      • 通过github同步代码
      • 生成报告并美化(allure)
      • 通过Jenkins实现持续集成
  5. 自动化测试如何搭建环境?
    • 安装软件
    • 上传项目包
    • 修改配置
    • 启动数据库
    • 重启tomcat服务
  6. 怎么去区分哪些需要考虑自动化,哪些不需要?
    • 主流程相关的功能
    • 投入产出比
    • 测试团队的技术水平
  7. 自动化你怎么测得?JAVA版本
    • 通过Jenkins设置触发规则,自动构建,执行代码,发送报告
  8. QTP对象识别失败是QTP自动化脚本中最常见的情况,造成这种情况的 原因是复杂多样的,试加以分析至少3个原因(selenium元素定位不到)
    • Frame/Iframe原因定位不到元素
      • 先切换到Frame页面
    • 元素未加载成功
      • 添加等待
    • 元素不可见,不可操作
      • 修改属性后再定位
    • 动态id
      • 切换定位方式
  9. 进程和线程关系及区别
    - 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个基本单位。
    - 线程是进程的一个实体,是系统进行调度的最小单位。
  10. String 和 StringBuffer的区别
  11. 任何语言来实现 String 串反转功能
  12. 接口测试中,下文接口如何拿到上文的回包?
  13. 进程和线程要实现同步有哪些方法
  14. hash的意思?
  15. 随便找两个你熟悉的python库,给讲讲使用的函数?
    • json
      • dumps(字典转json字符)
      • loads(json字符转字典)
  16. hashSet,hashMap,hashTable的区别
  17. java序列和反序列的意思
  18. http协议中,给我说说协议的具体组成?json库的使用,json字符串和 json对象的转换?
    • 请求行、请求头、空行和请求体
  19. 实现多线程并发的方式,并说明最佳方法
  20. 请分别说明Int和Integer的区别
    • int是基本数据类型,Integer是int的包装类
    • Integer变量必须实例化后才能使用,int变量不需要
    • Integer实际是对象的引用,int直接存储数据值
    • Integer默认值是null,int默认值是0
  21. 请列出java的基础数据类型
    • byte,short,int,long,char,bool,float,double
  22. 请指出HashMap和Hashtable的区别
  23. 请指出final, finally, finalize的区别
  24. JAVA垃圾回收的优点和原理,并简要说明你知道的几种回收机制
  25. 打印九九乘法表
  26. 写一个类
  27. 什么是类和对象?
  28. 冒泡排序题:定义一个int型/字符型的的数组,如何安装大小进行排 序?
  29. 对应用自己会花多久可以在业务上从入门到精通,说说自己的方法
    • 查看公司业务文档(项目介绍、需求文档等),输出业务流程图或PPT
    • 执行测试用例,操作项目
    • 查看历史issue
    • 遇到的问题统一记录下来,请教老同事
  30. 使用什么测试框架做的上一个项目的自动化测试
    • Pytest
  31. 如何定位app上的元素,使用appium的inspector了吗在什么平台用的?
  32. 自动化遇到用例fail掉如何排查故障
    • 先排除环境原因(驱动更新,测试数据失效)
    • 是否由于功能修改,自动化用例未同步
    • 检查是否是bug
  33. 等待元素出现的这个方法如何实现?
    • 强制等待
      • 固定等待多久
    • 隐式等待
      • 需要等待整个页面加载完成,才会执行下一步
    • 显式等待
      • 指定元素可见,即可执行下一步
  34. 如何在app一个列表的listview中查到自己想要的那个元素(图片,文 字,按钮)并点击?
  35. 如何在脚本中组织测试用例,按什么模式设计
  36. 如何测试app正确处理了服务端返回的异常,网络异常 服务异常等?
  37. selenium中如何判断元素是否存在?
    • 定位元素时捕获异常
    • 使用find_elements函数定位元素
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容