自动化测试面试HR的问题,你也可分分钟通过!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化测试面试HR的问题,你也可分分钟通过!!!相关的知识,希望对你有一定的参考价值。

参考技术A 这个应该大家都会,我也就不浪费时间

python+selenium+excel文件用数据驱动                                                                                                      具体怎么实现的,先写一个base文件做基础负责调用实际方法,还有数据的读写;然后往上有专门封装UI操作的method文件,和读写关键字文件的方法文件,再上层是一些复杂操作和逻辑的工具单独再封装成独立的文件。

post是往服务器发送数据,                                                                                                                          get是请求数据,安全性较低

拿到cookie和相应api文档内的参数做请求,                                                                                                用python的request库或者postman,                                                                                                            而我postman就填写查询参数,然后请求头里面的cookie调用就行了

登陆后拿到token,然后用token带参数去请求接口

而我平时在做的时候都是打开开发模式,直接在header里面找到一长串token复制下来使用,也没去研究是request还是response里面去传token,还是拿token。

上面是我在面试遇到过,但我还给大家总结其他面试可能会遇到的。

说出linux常用命令,一般要30到15个的样子 :

基础命令:

cd 切换目录

ls -l列出文件详细信息

ls -a列出当前目录下的所有文件

touch创建文件

mkdir 创建目录

echo  echo "内容" > mook hello 创建带有内容的文件 ;

cat 查看内容文件

cp 拷贝

mv移动或重命名

rm -r 递归删除;        

rm -f 强制删除       

wc 统计文本中行数、字数、字符数                    

网络命令:curl利用URL规则在命令行下工作的文件传输工具  curl www.baidu.com              

netstat:netstat 显示网络状态信息                       

telnet:用于登录远程主机  telnet 127.0.0.1                  

系统命令:                           

ping:测试网络连通                

man:查看帮助               

kill:杀死进程  top:动态显示当前耗费资源最多的进程信息           

ps:显示瞬间进程状态                

df:查看磁盘大小                   

df -h:带有单位显示磁盘信息

OSI 7层模型指的是哪些内容:

1、物理层:建立、维护、断开物理连接

2、数据链路层:逻辑连接、硬件地址寻址、差错校验

3、网络层:逻辑地址寻址、不同网络之间的路径选择、IP

4、传输层:传输数据的协议,TCP/UDP

5、会话层:建立、管理、终止会话,本地与远程主机的会话

6、表示层:数据的标示、安全、压缩、JPEG、ASCII等

7、应用层:与最终用户的接口,HTTP/HTTPS/SMTP等

Http协议中get/post的区别:

1、功能差异:get:去服务器取东西  post:从客服端上传东西用POST

2、数据传输:get把传输数据放在URL所带的参数里面,post放在body里面

3、安全性:get没有post安全性高,携带的参数数据会被发现,而post对用户不可见

tcp和 UDP的区别:

TCP:面向连接、传输可靠、应用场合:传输大量的数据、速度慢

UDP:面向非连接:如QQ/微信的消息,离线后再登陆可以收到消息、传输不可靠、少量数据、速度快

TCP连接三次握手具体过程

TCP连接都需要三个阶段:连接建立、数据传送和连接释放。三次握手就发生在连接建立阶段。

socket建立连接的过程:

1、服务器建立监听,socket,bind,listen

2、客服端发送请求,connect,send

3、连接确认,accept,response

进程和线程的区别?

进程:独立数据空间,进程间是不共享资源数据,系统调度

线程:执行程序的最小单元,进程内线程间共享资源,系统调度

PS:一个进程可以有多个线程,多个线程可以并发执行

进程有哪些状态?

就绪状态:已获取处理器以外所需资源,等待分配处理器资源

运行状态:占用处理器资源运行,此状态进程数<=CPU数

阻塞状态:进程等待某种条件,在条件满足之前无法执行

进程同步和互斥的区别?

互斥:

1、某一资源同时只允许一个访问者对其进行访问

2、具有唯一性和排他性

3、互斥无法限制访问者对资源的访问顺序,即访问是无序的

同步:

1、基于互斥、经其他机制实现访问者对资源的有序访问

2、大多数情况下,同步已经实现了互斥,写入资源是互斥的

3、少数情况下,可以允许多个访问者同时访问资源

进程间通信都包括哪些?

管道:半双工通信方式,数据单向流动,父子进程间

命名管道:半双工通信方式,无亲缘关系进程间通信

信号量:是计数器,锁机制,控制多进程多资源访问

消息队列:消息链表,存在内核中由消息队列标识符标识

信号:比较复杂的通信方式,通知进程某个事件已经发生

共享内存:映射一段能被多个进程可访问的内存

进程的调度算法都有哪些?

先来先服务、短作业优先、时间片轮转调度算法、高响应优先、优先权调度算法、多级队列调度算法

死锁产生的原因:

1、资源竞争

2、进程推进顺序不当

必要条件:互斥、不剥夺,请求与保持,环路等待

页面置换算法有哪些?

最佳置换算法、先进先出置换算法、最近最久未使用置换算法、Clock置换算法(最近未使用算法)

makefile的作用是什么?

1、定义规则,指定哪些文件先编译、后编译、重新编译

2、makefile的好处,自动化编译

3、makefile 需要make工具解释执行

什么是ANR?

ANR:应用无法响应

Activity的最长执行时间是5S

用户可以选择等待或者强行关闭

安卓常见的五种布局:

FrameLayout:框架布局

LinearLayout:线性布局

AbsoluteLayout:绝对布局

RelativeLayout:相对布局

TableLayout:表格布局

安卓中动画有哪几种类型:

Tween动画,组件移动、缩放、透明度的变化

Frame动画,通过顺序播放来实现,类似电影

Adb基本命令:

app安装:adb -p 手机ip地址(192.168.0.203:5555) install 包APK的位置

app重复安装:adb -p 手机ip地址(192.168.0.203:5555) -r install 包APK的位置

app卸载:adb -p 手机ip地址(192.168.0.203:5555) uninstall 包名(cn.comein)

查看手机是否连接:adb advices  adb connect 192.168.0.203:5555

Selendroid是instrumentation的一次封装;

Selendroid四大组件:

Selendroid Client:Webdriver +移动特性的实现

Selendroid Server:一个Instrumentation APK

androidDriver-App:一个WebViewActivity,即浏览器

Selendroid-Standalone:大总管,负责准备环境

Robotium基于Instrumentation进行封装,实现的Android测试框架

封装了Solo类库,提供自动化测试API

由于是基于Instrumentation,测试时需要源码

Appium的理念:不需要APP源码;不局限于语言和框架;接口统一,不需要重复开发;必须是开源的

C/S架构,Appium核心是一个Web服务器

Session:客户端初始化session与服务器交互

Desired Capabilites:初始化时的键值对组合

Appium Server:操作与驱动手机的

Appium Client:支持多语言调用

Appium环境包括哪些:

Android SDK/JDK/Appium/

Pycharm Python环境

库:Selenium/Appium-Python-Client

Appium支持哪些开发语言:Java/javascript/php/Python/Ruby/C /perl/Object C

App初始化时的配置:

platformName:目标设备平台Android/ios

platformVersion:目标设备的平台版本

deviceName:目标设备名称

appPackage:App包名(Android)

appActivity:App Activity名称

automationName:自动化驱动类型Selendroid/Appium

unicodeKeyboard:是否使用Appium输入法

resetKeyboard:恢复默认键盘

单元测试unittest测试框架:

1、TestFixture:SetUp:   TestCase:   TearDown:

2、TestCase

3、TestSite

4、TestRunner

数据驱动DDT:

黑盒测试-功能测试

数据驱动单元测试:为数据源中每行重复进行一种单元测试

常用情况是使用多个输入值测试API

效果:使用多个数据运行一条用例,使其表现为多条用例

原理:通过Python的 ,装饰每条用例。

以上仅供参考和借鉴,希望对你有所帮助!                                                                                                小枫文章整理不易,欢迎各位朋友点赞!

5年测试,面试结束后被HR怼了..(心塞)

前一阵子向朋友诉苦,我在参加字节跳动面试的时候被面试官怼得哑口无言,场面让我一度十分尴尬。

印象最深的就是下面几个问题:

根据你以前的工作经验和学习到的测试技术,说说你对质量保证的理解?
非关系型数据库和关系型数据库的区别,谈谈优势比较?
在自动化方面有什么成熟的方案,有没有做过二次开发?
dubbo接口了解吗,它的测试核心是什么?
质量部如果需要定制化一个质量体系平台,你会考虑哪些问题?

不到半小时,我的面试就结束了。

然后就收到了“回去等消息”的通知。我知道结果不会太好,但没想过这么差。不出所料,晚上就看见面试官发了一条这样的朋友圈:

真是受到了重重的打击,也是极度崩溃,知道自己肯定黄了,面试太难了...

在和8年测试朋友长聊后,好好总结了自动化测试这个问题,下面也分享给大家,让大家不要像我这么尴尬...

Python自动化测试-学习路线

一、Python常用领域

Python用于简单脚本编程,如编写2048小游戏或12306的自动抢票软件;
Python用于系统编程,如开发系统应用;
Python用于开发网络爬虫;
Python用于Web开发,如个人博客、在线教育网站以及论坛等;
Python用于自动化运维,如通过写Python脚本实现对于服务器集群进行自动化管理;
Python用于网络编程,如Socket编程等;
Python用于数据挖掘、机器学习等大数据与人工智能领域方向的程序开发,如在人工智能领域;
Python用于自动化测试,如UI自动化测试(Python+Selenium等)、接口测试(Python requests等)、性能测试(Python Locust等)、安全性测试(Python Scapy等)、兼容性测试(Python+Selenium等)等;

什么是自动化测试呢?

关于这个问题,可能没有准确的答案。

普遍认为的是接口自动化测试,WebUI自动化测试,App自动化测试等被冠以自动化命名的测试方案。

其实不然,自动化测试是相对于手工而言的,用代码或是借助于第三方工具,把繁复的测试工作从手工转化为机器自动执行的测试方案,可以统称为自动化测试。

除了上面所说的三个方面的自动化测试,当然还包括日志过滤,日志回放,接口监控,服务监控等等,根据具体业务需求通过代码把人力从中解放出来的代码手段。

为什么要做自动化测试?

从工作角度来说,目前互联网行业需求迭代非常快,人员流动也比较快,所以一个需求从提出到上线时间比较紧急,同时对于其影响的范围也可能不太清楚,在上线之前必须对原有功能进行回归测试。

不管是接口还是从客户端,都需要大量的测试工作,而且在大数据时代,测试用例量也是非常庞大的,如此繁复单调的工作让人工来测试的话,根本不能保证效率和质量,所以必须要借助于非人工手段来实现。

从个人发展方面来讲,时代在发展,对我们的要求也越来越高,所以我们要迎接变化,不断提升自己才行。虽然你可以坚持手工测试是基础,是王道,可是并没有企业愿意为你这个信念买单。

除非你生活无忧无虑,可以坚持自己的信念,否则你就要尊重业界发展的规律,不断充电从而使自己更有价值。或许再过几年,自动化测试会成为从业者的准入门槛,如果做不好自动化测试,所谓的高薪也就无从谈起。

那该如何学习自动化测试?

既然自动化测试是手工测试提升的一个必经之路,虽然自动化测试没有那么高大上,但也是必不可少的。那作为一个有理想的测试人员,应该如何去学习自动化测试呢?

(1) 准确定位自己,明确目标

有不少同学意识到了自动化测试的重要性,就去网上查询资料啊,或是报培训班学习啊,可是到最后越学越迷茫,处于会与不会之间,前路不知如何去走?这是什么原因呢?

这是因为你在学习自动化测试之前没有想明白几个问题:我的真实水平如何?如果学习一项新的技术或是语言,我愿意投入的精力是多少?从现在开始学习,三个月或是半年后应该达到什么目标?我了解现在业界的自动化测试类型或是体系吗?想好这些问题再去入手学习或培训,必定事半功倍。

(2) 全面了解,选好切入点

目前自动化测试方向大概有以下几个:

A、辅助测试脚本方向:以Shell,Python为主来简化重复的工作,过滤日志等;
B、接口自动化测试方向:Python+Unittest+HtmlTestRuner+Jenkins和Java+Httpclient+TestNG+Jenkins,当然还有很多其他二次开发的框架或工具,不过核心是一样的;
C、页面自动化方向,主要有Python+Webdrver+HtmlTestRunner+Jenkins,Java+Webdriver+TestNG+Jenkins,以及其他的框架和工具;
D、App自动化测试方向:以Robotium+Java+TestNG+Jenkins,  Appium+Java+TestNG+Jenkins,Appium+Python+HtmlTestRunner为主。

当然这里介绍的都是简单的,最基本的实现方案,作为入门学习比较合适。其他五花八门的二次开发的框架,包含众多功能的方案留待你以后提升。先从这几方面了解入手,选择一个语言体系,建议从接口自动化入后,然后再去学习页面和app。

(3) 步步为营,不要贪多

我们在提升自己的时候,发现有好多东西需要学习,于是就很着急,想同时学习很多东西,其实这并不好。学的太多容易产生混淆,而且不容易消化,你仔细调研一下就会发现,很多东西都是通着呢。代码架构,用例管理,执行策略,持续化集成思想都可以举一反三,关键是自己要动手真正实施起来,在公司现在的框架上写用例,不管你写多少,不了解整体结构都是没有用的。

(4) 抛弃工具,多用开源

业界好像从来不缺少自动化测试工具,QTP,RealobotFramework,LoadRunner等等,知名不知名的数不胜数。先不说这些工具效果如何,目前大公司是从来不用这些工具的,大家都使用开源的框架,工具进行定制化自己的测试方案。

所以刚刚学习自动化测试的时候,也不要依赖工具,使用开源Webdriver,Appium,Robotium等搭建自己的自动化测试工程。掌握一个整体的自动化工程工作原理,为以后搭建自己的自动化工程,工具,平台做准备。

不管你对自动化测试是爱,是恨,它都是从手工测试转为测试开发必经的阶段。可能你了解到自动测试没有用,实施起来维护成本高,执行效率低等负面信息,其实这不是自动化测试的问题。

要知道,它只是一个工具,一种测试方案,最终的效果还是由实施的人来决定的。在12,13年的时候,用Jenkins做持续化集成比较热门,接下来几年好像没有那么火了,但是近两年docker技术的出现,又使CI,CD变得火热起来。我们是不是应该端正对自动化测试的态度,明确什么才是你想要的,找准方法,不断提升自己呢?

Python自动化测试-学习路线

学习路线规划:

1.python(python不过关,别谈自动化);

2.Web基础(网页基础)

3.Selenium框架

4.unittest框架

5.Robot Framwork框架

6.项目

Web篇

Web就是在Http协议基础之上, 利用浏览器进行访问的网站。网页开发会涉及到HTML超文本标记语言、CSS层叠样式表、Javascript脚本语言。

  • 环境搭建
    编辑工具: Hbuiderl
    浏览器: 火狐/谷歌
  • HTML基础
    基本结构
    常用元素
    元素属性
    层次结构
  • CSS基础
    样式表
    选择器
    核心属性
  • Javascript基础
    变量类型
    if语句
    while语句
    for语句
    数组
    DOM操作

八、Selenium篇

Selenium 诞生于 2004 年,当在 ThoughtWorks 工作的 Jason Huggins 在测试一个内部应用时。作为一个聪明的家伙,他意识到相对于每次改动都需要手工进行测试,他的时间应该用得更有价值。他开发了一个可以驱动页面进行交互的 Javascript 库,能让多浏览器自动返回测试结果。那个库最终变成了 Selenium 的核心,它是 Selenium RC(远程控制)和 Selenium IDE 所有功能的基础。
Selenium 2(又叫 Selenium Webdriver),Selenium 1 (又叫 Selenium RC 或 Remote Control),Selenium RC 都是最主要的 Selenium 项目,直到 WebDriver 和 Selenium 合并而产生了最新且最强大的 Selenium 2.
Selenium IDE (集成开发环境) 是一个创建测试脚本的原型工具。它是一个 Firefox 插件,提供创建自动化测试的建议接口。

  • 框架原理
  • 自动化测试流程
  • python+selenium环境搭建
  • Selenium WebDriver API实战
  • 自动化测试用例设计
  • Jenkins+SVN持续集成管理

九、unittest篇

自动化测试的最后一步需要判断结果是否正确,而正确设置断言可以帮助判断测试用例的执行结果,从而提高自动化测试的效率,python unittest 提供了一个比较完整的断言方法。

  • Python+Unitest测试框架
    生成HTMLTestRunner测试报告
    测试套件
    测试套件实例
    整合HTMLTestRunner测试报告
    易读的测试报告

十、Robot Framwork篇

Robot Framework是一个基于Python可扩展地关键字驱动的测试自动化框架,使用Apache License 2.0,由Robot Framework Foundation开发和赞助。Robot Framework被广泛地使用在端到端地验收测试以及ATDD(acceptance-test-driven development)中,生态体系非常丰富。

  • Robot FrameWork原理
  • Robot FrameWork环境搭建
  • Robot FrameWork工具使用
  • Robot FrameWork系统关键字
  • Robot FrameWord用户自定义关键字封装
  • RFS Web自动化测试实战
  • RFS集成JQuery
  • 数据库自动化测试实战

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

以上是关于自动化测试面试HR的问题,你也可分分钟通过!!!的主要内容,如果未能解决你的问题,请参考以下文章

5年测试,面试结束后被HR在朋友圈吐槽了..(心塞)

一个妹子的美团面试经历,已成功拿到Offer

java开发面试,技术面一面很快就结束了是怎么回事?

4年经验去面试测试开发,10分钟就结束了,问的也太...

关于软件测试-自动化测试之面试技巧和注意事项——侃侃而谈

关于软件测试-自动化测试之面试技巧和注意事项——侃侃而谈