做网站有哪些主题,制作网站分析商业模式,软件开发招聘,金融服务网站建设内容一、Web自动化测试
1.Selenium中hidden或者是display #xff1d; none的元素是否可以定位到#xff1f;
不能,可以写JavaScript将标签中的hidden先改为0#xff0c;再定位元素
2.Selenium中如何保证操作元素的成功率#xff1f;也就是说如何保证我点击的元素一定是可以…一、Web自动化测试
1.Selenium中hidden或者是display none的元素是否可以定位到
不能,可以写JavaScript将标签中的hidden先改为0再定位元素
2.Selenium中如何保证操作元素的成功率也就是说如何保证我点击的元素一定是可以点击的
1.添加元素智能等待时间 driver.implicitly_wait(30)
2.添加强制等待时间(比如python中写 sleep)
3.try 方式进行 id,name,clas,x path, css selector 不同方式进行定位如果第一种失败可以自动尝试第二种
3.如何提高Selenium脚本的执行速度
代码优化多任务分布式部署都是可以提升脚本执行速度的。
4.用例在运行过程中经常会出现不稳定的情况也就是说这次可以通过下次就没办法通过了如何去提升用例的稳定性
1.time.sleep( )
2.driver.implicitly_wait(30)
3.多用 try 捕捉处理异常
5.你的自动化用例的执行策略是什么
自动化测试与软件开发本质上是一样的利用自动化测试工具经过测试需求分析设计出自动化测试用例从而搭建自动化测试的框架设计与编写自动化脚本验证测试脚本的正确性最终完成自动化测试测试脚本即主要功能为测试的应用软件并输出测试结果
6.自动化测试的时候是不是需要连接数据库做数据校验
从数据库层面来进行数据校验可以更方便验证系统的数据处理方面是否正确数据处理逻辑正常后UI层面上的校验也是需要做的。
7.id,name,class,xpath, css selector这些属性你最偏爱哪一种为什么
css 、xpath 几乎所有的元素都可以定位到,但是它们的短处在于页面上更改了元素后位置很容易改变所以首先使用的还是id或者name等。
8.如何去定位页面上动态加载的元素
触发动态加载元素的事件直至动态元素出现进行定位
9.如何去定位属性动态变化的元素
xpath或者css通过同级、父级、子级进行定位
点击链接以后Selenium是否会自动等待该页面加载完毕
会的
10.什么是page object设计模式
简单来说就是把页面作为对象在使用中传递页面对象来使用页面对象中相应的成员或者方法能更好的体现面向对象语言比如java或者python的面向对象和封装特性。
11.如何在定位元素后高亮元素以调试为目的
用JavaScript等脚本来重置元素属性给定位的元素加背景、边框
12.什么是断言
断言的英文是assertion断言检查的英文是assertion checking。
断言是指定一个程序必须已经存在的状态的一个逻辑表达式或者一组程序变量在程序执行期间的某个点上必须满足的条件。
13.你觉得自动化测试最大的缺陷是什么
1.不稳定
2.可靠性
3.不易维护
4.成本与收益
14.Webdriver可以用来做接口测试吗
接口测试有现成的模块来处理WebDriver是用于做WebUI自动化测试的。如果要实现接口测试可以使用Requests模块来实现
二、APPUI自动化测试
1.Android APP 内存不足时 系统如何结束进程获得内存
系统优先结束被挂起暂停的进程释放内存
2.APP 测试常见的严重问题有哪些分别引起的原因有哪些
常见的有 crash、ANR应用无响应、卡死一般由设备碎片化、网络波动大、内存泄漏、代码编写错误
3.请简单介绍你曾使用过的一款 APP 自动化测试工具
开放性问题带点主观意见
1.对比其他熟悉的自动化工具的优缺点
2.自动化的简要方案简要的同时关键内容请具体。提示appnium 等
4.Android 测试与 web 测试有什么区别
相同点
1.设计测试用例均依据等价类、边界值等方法测试原理相同
2.大多数都采用黑盒测试方法来验证业务功能
3.需要检查界面布局、风格和按钮是否美观、统一等UI测试
4.测试页面载入和翻页的速度、登录时长是否溢出等问题性能测试
5.测试应用系统的稳定性
不同点
1.手机作为通信工具通信等一些行为会对APP产生(中断测试)
2.手机用户对app 产品的安装卸载操作从上一版本/上两个版本直接升级到最新版本安装卸载测试
3.web自动化测试使用的工具较常用的是selenium,而android手机自动化测试比较常用的自动化工具是monkey、monkeyrunner、Appium测试工具不一样
5.app 测试有哪几种环境
本地环境app 安装的手机环境和电脑搭建的自动化测试环境比如安卓 SDK 等等。
服务器环境war 包部署的服务器 服务器可以通过浏览器访问 也可以通过 app 去访问。访问的是 web 程序的接口
6.简单介绍一下 Android SDK 的安装步骤
下载 jdk 和安卓 sdk
安装 jdk 配置环境变量java_home、 classpath、 path
7.请简要介绍一下移动应用及其服务端的测试点
移动应用主要有权限、安装运行卸载、UI、功能、性能、中断、兼容性、安全性、回归、升级更新、用户体验。app的11 大测试点
服务端有接口测试、性能测试、安全测试。
8.如何判断 app 的 bug 是客户端问题还是后台问题
这个要根据业务来一般数据的问题前端的问题多些一般做法是有问题提给前端开发 他们知道是他们自己的问题还是后台返回的数据问题。
9.安卓中如何取出日志信息
把安卓系统日志信息实时导入到本地adb logcat -v time d:\mylog.log
运行使用某个 app实时获取该 app 的日志信息cmd 里面的返回信息
adb shell monkey -p com.android.calendar -v 1000 d:\mylog2.log
10.常见的 adb 命令
查看当前连接的设备adb devices
安装软件adb install 路径\xx.apk
卸载软件adb uninstall 包名
从电脑上发送文件到设备adb push 本地路径 远程路径
adb push C:\test1.txt /sdcard/
从设备上下载文件到电脑adb pull 远程路径 本地路径
adb pull /sdcard/test1.txt D:
实时获取日志adb logcat -v time D:\mylog.log
登录终端设备 shelladb shell
查找包名/活动名adb logcat | findstr START
脚本中 cmp 后面的值就是 包名/activity 名称
启动 APP 启动
adb shell am start -n packageName/activity
关闭 app
语法adb shell am force-stop 包名
监控 APP 启动时间
adb shell am start -W packageName/activity
Monkey 命令
adb shell monkey -v -p mypackage 50
11.APP 这么多主流机型如何测试
我们公司就买了 魅族 华为 小米 iphone7、 iphone8 、 iphone8plus 、 iphone x 测试兼容性有些没有的机型先借用同事的手机进行测试同时申请公司购买或者采用云真机。
12.App 崩溃闪退可能是什么原因导致的
缓存垃圾过多由于安卓系统的特性,如果长时间不清理垃圾文件.会导致越来越卡.也会出现闪退情况.
运行的程序过多,导致内存不足
应用版本兼容问题如果应用版本太低会导致不兼容造成闪退。此外有些新版本在调试中也会
造成应用闪退。解决方法如果是版本太旧更新为新版本即可如果是新版本闪退可能是应用在改版调
试可卸载后安装旧版。
检查 APP 中访问网络的地方组件中的 ImageView 是否可以正常的下载并显示到 app 页面上。
检查 APP 的 sdk 和手机的系统是否兼容。
在一些特定情况下的闪退,比如播放视频,在 Android5.0 升级到 Android6.0 的时候,有些系统 API 老版本
有,新版本没有,到时回去对象的时候失败,报空,系统就会出现闪退
13.Appium 都有哪些启动方式
1.客户端启动
2.命令行启动
14.请简单介绍一下使用过的安卓UI自动化测试工具
参考答案appium是一个移动端的自动化框架可用于测试原生应用移动网页应用和混合型应用且是跨平台的。robotium是一款国外的Android自动化测试框架主要针对Android平台的应用进行黑盒自动化测试它提供了模拟各种手势操作点击、长按、滑动等、查找和断言机制的API能够对各种控件进行操作。
15.请说明Android手机和IOS手机系统有什么区别
两者运行机制不同IOS采用的是沙盒运行机制安卓采用的是虚拟机运行机制。
两者后台制度不同IOS中任何第三方程序都不能在后台运行安卓中任何程序都能在后台运行直到没有内存才会关闭。
IOS中用于UI指令权限最高安卓中数据处理指令权限最高。
接口自动化测试
16.按你的理解软件接口是什么
答
就是指程序中具体负责在不同模块之间传输或接受数据的并做处理的类或者函数。
17.HTTP和HTTPS协议区别
答
https协议需要到CACertificate Authority证书颁发机构申请证书一般免费证书较少因而需要一定费用
http是超文本传输协议信息是明文传输Https协议是由SSLHttp协议构建的可进行加密传输、身份认证的网络协议比http协议安全
http和https使用的是完全不同的连接方式用的端口也不一样前者是80后者是443
18.HTTPS在哪一层
以前我面试很喜欢提网络协议的问题有朋友说我装X不实用。稍有点研究网络知识实际就不难回答
答HTTPS在应用层。
19.get和post区别是什么
答POST和GET都是向服务器提交数据并且都会从服务器获取数据。
区别
1传送方式get通过地址栏传输post通过报文传输
2传送长度get参数有长度限制受限于url长度而post无限制
3GET产生一个TCP数据包对于GET方式的请求浏览器会把http header和data一并发送出去服务器响应200返回数据POST产生两个TCP数据包对于POST浏览器先发送header服务器响应100 continue浏览器再发送data服务器响应200 ok返回数据
4get请求参数会被完整保留在浏览历史记录里而post中的参数不会被保留
5在做数据查询时建议用GET方式而在做数据添加、修改或删除时建议用post方式
20.常见的POST提交数据方式
答
主要有四种方式application/x-www-form-urlencoded、multipart/form-data、application/json、text/xML等。
21.什么是Http协议无状态协议?怎么解决HTTP协议无状态协议
答
无状态是指协议对于事务处理没有记忆能力服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后服务器根据请求会给我们发送数据过来但是发送完不会记录任何信息。HTTP 是一个无状态协议这意味着每个请求都是独立的Keep-Alive 没能改变这个结果。缺少状态意味着如果后续处理需要前面的信息则它必须重传这样可能导致每次连接传送的数据量增大。另一方面在服务器不需要先前信息时它的应答就较快。HTTP 协议这种特性有优点也有缺点优点在于解放了服务器每一次请求“点到为止”不会造成不必要连接占用缺点在于每次请求会传输大量重复的内容信息。客户端与服务器进行动态交互的 Web 应用程序出现之后HTTP 无状态的特性严重阻碍了这些应用程序的实现毕竟交互是需要承前启后的简单的购物车程序也要知道用户到底在之前选择了什么商品。于是两种用于保持 HTTP 连接状态的技术就应运而生了一个是 Cookie而另一个则是 Session。
22.cookie和session的区别
答
cookie数据存放在客户的浏览器上session数据放在服务器上
cookie不是很安全别人可以分析存放在本地的cookie并进行cookie欺骗考虑到安全应当使用session
session会在一定时间内保存在服务器上。当访问增多会比较占用你服务器的性能考虑到减轻服务器性能方面应当使用cookie
单个cookie保存的数据不能超过4K很多浏览器都限制一个站点最多保存20个cookie
可以将登陆信息等重要信息存放为session其他信息需要保存可以放在cookie
23.什么是DNS
答DNS 是域名系统 (Domain Name System)DNS是用来做域名解析的,它会在你上网输入网址后把它转换成IP然后去访问对方服务器没有它你想上百度就要记住百度的IP但有了DNS的处理你只需要记住对应网站的域名即网址就可以了。
24.请问你们公司是如何做接口测试的
答
接口测试实际跟一般测试不同就是测试用例的设计部分。
①获取接口规范。
②设计接口测试功能用例主要从用户角度出发看接口能否实现业务需求用例设计就是黑盒用例那一套。
③各种入参验证正常情况异常情况包括输入参数个数不对类型不对可选/必选还有考虑参数有互斥或关联的情况。
④接口返回值各种验证符合接口文档需求
⑤了解接口实现逻辑实现逻辑覆盖语句/条件/分支/判定/…
⑥接口能并发执行吗、安全吗性能满足要求吗?
⑦采用工具或者自写代码来验证。
⑧发现问题跟功能测试一样该报bug报bug该跟踪状态的跟踪状态。
25.怎么设计接口测试用例
答
通常设计接口测试用例需要考虑以下几个方面
①是否满足前提条件
有些接口需要满足前提才可成功获取数据。常见的需要登录Token
逆向用例针对是否满足前置条件假设为n个条件设计0~n条用例
②是否携带默认值参数
正向用例带默认值的参数都不填写、不传参必填参数都填写正确且存在的“常规”值其他不填写设计1条用例
③业务规则、功能需求
这里根据时间情况结合接口参数说明可能需要设计N条正向用例和逆向用例
④参数是否必填
逆向用例针对每个必填参数都设计1条参数值为空的逆向用例
⑤参数之间是否存在关联
有些参数彼此之间存在相互制约的关系
⑥参数数据类型限制
逆向用例针对每个参数都设计1条参数值类型不符的逆向用例
⑦参数数据类型自身的数据范围值限制
正向用例针对所有参数设计1条每个参数的参数值在数据范围内为最大值的正向用例
26.平常用什么工具测接口的
答常用http协议接口测试工具如postman、fiddler、jmeterwebService接口用SoapUI、jmeter等。
27.没有接口文档如果做接口测试
本题主要考情商通俗来说就是忽悠能力先唬住面试官了再说进去了也是瞎测测随时做好背锅的准备当然你肯定不能回答面试官不测(心理mmp脸上笑嘻嘻)接下来就是扯犊子时间
答用抓包工具把接口抓取处理然后针对性进行测试接口中字段信息不清楚的找时间集中寻求开发解答。常用抓包工具Fiddler、Charles等
28.在手工接口测试或者自动化接口测试的过程中上下游接口有数据依赖如何处理
答用一个全局变量来处理依赖的数据比如登录后返回token其它接口都需要这个token那就用全局变量来传token参数。
29.依赖于第三方数据的接口如何进行测试
答mock
接着面试官会问你如果mock的然后你就顺着坑继续挖搭建mock服务参考这篇http://www.51ste.com/share/det-485.htML
30.接口测试中依赖登录状态的接口如何测试
答依赖登录状态的接口的本质上是在每次发送请求时需要带上session或者cookie才能发送成功在构建POST请求时添加必要的session或者cookie
31.如何模拟弱网做测试
答Fiddler和charles都可以模拟弱网测试平常说的模拟丢包也是模拟弱网测试。具体可以看《几种弱网模拟方法总有一种适合你》
32.你平常做接口测试的过程中发现过哪些bug?
面试官出这个题主要是想知道你是不是真的做过接口测试毕竟现在很多小伙伴简历经过包装不包装连面试机会都没有没办法为了生存能理解
答
常规错误接口没实现没按约定返回结果边界值处理出错等。
输入异常值空值、特殊字符、超过约定长度等接口抛错没做封装处理
输入错误的参数、多输入、少输入参数接口可能出现的错误
安全性问题如明文传输、返回结果含有敏感信息没对用户身份信息做校验没做恶意请求拦截等
性能问题如接口并发插入多条相同操作响应时间过长接口压测出现瓶颈等
33.当一个接口出现异常时候你是如何分析异常的
答
先抓包用fiddlercharles工具抓包或者浏览器上F12调试工具APP上的话那就用Fiddler做代理通过手机设置代理去看请求和返回报文
查看后端日志如Linux系统通过xhell连上服务器查看接口日志查看是否有报错信息命令tail -f 日志文件
34.如何分析一个bug是前端还是后端的
答
平常提bug的时候前端开发和后端开发总是扯皮不承认是对方的bug。
这种情况很容易判断先抓包看请求报文对着接口文档看请求报文有没问题有问题就是前端发的数据不对
请求报文没问题那就看返回报文返回的数据不对那就是后端开发的问题咯。
35.你们做接口测试自动化吗
答现在针对大量应用普遍推崇做接口测试自动化维护成本低、收益高。常用的工具有许多如Jmeter、Robot Framework、pytest等。
36.列出几个JMeter监听器
一些JMeter监听器是
集合报告
汇总报告
查看结果树
用表格查看结果
图形结果
BeanShell Listener
摘要报告等
37.在python中进行数据驱动测试
在unittest中没有自带的数据驱动我们得借助ddt来实现首先我们得在python运行环境中安装ddt用下列命令安装
pip install ddt
另外一个测试框架pytest它自带数据驱动实现是通过pytest.mark.parametrize(argnames,argvalues) 来实现参数化的。
也可以根据自己需求用python实现数据的读取和驱动。
38.接口自动化中的关联怎么处理
把上一个请求返回的结果传入到下一个请求的参数中将请求的结果反射到一个类属性使用setattr函数下一个请求去调用这个类属性
39.自动化测试怎么校验结果
断言 预期结果与实际结果对比
数据库校验根据测试场景来查询数据库里的数据和请求之前的数据进行比对
40.自动化使用的测试框架是什么简述自动化框架的设计、维护
测试框架pythonunittestrequestsddtopenpyxlpymysqllogging
python入门简单语法简洁
unittest 定义一个测试用例类具体的方法来维护测试用例的生命周期测试场景行为测试用例 前置场景行为期望结果实际结果断言方法Setup teardown方法
requests接口调用 支持http请求的库API 简洁提供不同的http请求方法支持sessioncookies
ddt 数据驱动ddt 类装饰器data 测试方法装饰器 unpack解包可迭代的数据类型
普通用户数据库配置文件—基础数据
openpyxl数据管理 excel管理数据使用openpyxl模块来进行excel数据的读和写exclecsv, json, yaML, txt都可以管理测试数据
pymysql数据库交互数据校验
evaljson数据格式的转换 Eval将python支持的格式转换成对应的格式
logging日志处理 统一日志输出格式渠道级别执行结果的记录便于定位问题
jenkins持续集成
2/框架设计思路数据驱动结构分层可读性可维护性可扩展性
数据驱动将维护数据与代码分离接口调用行为一致针对不同的参数组合驱动不同的测试场景减少代码冗余
结构分层数据层用例层逻辑层
数据层测试数据的支撑 data.xls
用例层用例的执行 test_register.py test_recharge.py
逻辑层公用的方法的封装与提取 doexcle.py do_mysql.py http_requests.py logger.py等模块
3/框架设计步骤
准备测试数据EXCEL表准备测试用例—excel数据的读取—参数值的替换
发起请求请求方法get/post方法进行封装—URL的拼接不同—参数转化为字典
拿到请求的返回值解析返回值codestatusmsg信息
断言
好处
1、自动化测试用例和手工测试用例的完美结合减少重复工作
2、配置灵活可以自主切换测试环境执行测试用例
3、常用功能进行封装逻辑清晰易于维护
4、统一执行入口管理测试用例集
run.py模块通过模糊查找来选择需要执行的测试用例
5、持续集成定时构建快速反馈
41.具体的在这个项目中自动化怎么应用到实际的您对自动化结果的分析
完成所有的自动化测试框架的设计和实现后进行接口测试然后集成到
jenkins配置定时执行生成htML报表查看测试通过率查看接口的功能
每次发版时进行回归测试新功能开发未提测前。
今天就先分享到这里啦
总结
感谢每一个认真阅读我文章的人
作为一位过来人也是希望大家少走一些弯路如果你不想再体验一次学习时找不到资料没人解答问题坚持几天便放弃的感受的话在这里我给大家分享一些自动化测试的学习资源希望能给你前进的路上带来帮助。 软件测试面试文档
我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。 视频文档获取方式 这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。