自动化测试面试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的问题,你也可分分钟通过!!!的主要内容,如果未能解决你的问题,请参考以下文章