美文网首页
测试面试问题记录

测试面试问题记录

作者: 寻叶亭 | 来源:发表于2018-09-09 16:33 被阅读53次

    1.前端代码如何区分是CSS还是js

    CSS以<style>开始,</style>结束. 负责静态页面布局;
    JS以<script type="text/javascript">开始, 以</script>结束,实现网页的动态性,交互性
    

    2.常用xpath定位方法

    一般浏览器copy出来都是绝对路径,弊端是只要页面稍有变动,就定位不到了,所以最好自己写相对路径
    如:By.xpath(“//a[contains(@alt,'img')]”) 就表示寻找页面中alt属性值包含有img的所有a元素
    

    3.Python常用第三方模块

    requests、HTMLTESTRunner、MySQLdb、unittest、urllib2、smtplib
    

    4.HTTP请求中的header部分如何携带

    requests.get方法里面可以传header,可选参数,样例:
    import requests 
    payload = {'key1': 'value1', 'key2': 'value2'}
    headers = {'content-type': 'application/json'}
    r = requests.get("http://httpbin.org/get", params=payload, headers=headers)
    

    5.一名优秀的测试是怎样的?
    责任心、精通测试设计、极强的问题定位分析能力、较强的沟通表达能力,更关注整体交付质量,不仅娴熟地使用工具,并且知其原理,还有多个同类工具的优缺点、适用场景以及二次开发能力,最后还有不断学习的能力。

    6.如果自动化用例失败了应该怎么办?
    1.首先看日志,分析原因;
    2.再跑一次确认;
    3.手工测试确认到底是bug还是自动化用例写错了
    4.加上等待时间

    7.购物车测试点
    功能:商品能否正常添加至购物车、购物车里显示的商品信息和数据库是否一致,能否正常付款、从购物车里删除、批量删除、分页展示、有无上限
    易用性:界面显示美观、操作简单易懂
    兼容性:在不同浏览器和各种app上显示均正确
    性能:是否需要对接口进行性能测试

    8.自动化最大的痛点
    不是所有项目都适合自动化,因为自动化是通过写代码检测代码,创建和维护都是需要时间成本的,自动化测试复用次数如果达不到5次以上,那么可能就是得不偿失的。

    9.sql如何插入一列
    alter table tablename add(cloumname varchar(11));给tablename字段新增加一列cloumname ,类型为字符串类型,最大长度为11

    10.sql内联和外联的区别
    内连是返回两个表共有的数据,相当于交集;外联是返回两个表所有的数据,相当于并集,外联又分为左外连接,右外连接和外全连接。

    11.微服务架构的优势
    优势:低耦合、扩展性和可靠性都更好;不足:服务之间的传递比单体低效

    12.https和http的区别,为什么?
    http传的是纯文本消息,https是通过ssl加密传输二进制消息

    13.is和==的区别
    is 的作用是用来检查对象的标识符是否一致,也就是比较两个对象在内存中的地址是否一样,而 == 是用来检查两个对象是否相等。

    14.同步和异步的区别
    同步:所有操作都做完才返回给用户;
    异步:用户请求后将请求存入消息队列,先返回结果给用户,再继续完成后续操作

    15.http1.0和http2.0的区别
    http1.0是短连接,文本消息交互,每个请求都要重新建立连接,请求和响应都需要完整的头信息,http2.0是长连接,二进制交互,用于https,多路复用(多次请求可能只需要一次3次握手),可压缩头信息,加密传输

    16.http和websocket的区别
    websocket基于http,但http只能有客户端发起请求,socket是两端都可随时发送消息,并且多路复用,不用进行多次三次握手,不用每次都发送header

    17.TCP和UDP的区别
    tcp面向连接,更可靠,丢包率低,udp实时性更高,支持一对多、多对多,它俩就像手机与对讲机的区别

    18.delete与truncate、drop的区别
    truncate 和delete只删除数据, drop则删除整个表(结构和数据),delete可以回滚,truncate不能回滚,truncate会释放表和索引的占用空间。

    19.内存中为何要区分堆和栈
    用途不一样,栈内存是用来存放局部变量用的,用完就释放内存空间,堆用来存放new出来的各种对象,都会分配一个地址值,且有默认初始化值,堆先进先出,栈后进先出。

    部分回答加入了个人的理解,如有错误欢迎指正。

    相关文章

      网友评论

          本文标题:测试面试问题记录

          本文链接:https://www.haomeiwen.com/subject/ccslgftx.html