1、http和https的区别

http是超文本传输协议,端口是80
https是由SSL+http协议构成(https多了个加密协议,比http更安全),端口是443

2、TCP和UDP的区别

两者都属于传输层协议
TCP是面向连接的,建立TCP需要三次握手,断开需要四次挥手
UDP是面向非连接的协议,不需要与对方建立连接,而是直接发送数据包给对方,比较适合一次传输少量数据,属于不可靠连接,优点:传输速度快

3、打开一个网站经过哪些步骤,才可以让人看见

在浏览器输入网址(www.baidu.com)点击搜索→由本机电脑经过DNS进行域名解析成服务ip→再向目标地址发送请求过去并建立三次握手的连接→再将服务器发送过来的数据呈现在自己的浏览器上

4、你使用fiddler用来做什么

a、抓包,辅助测试,看请求入参和出参,判断前后端bug
b、改数据,断点
c、网络测试,目的:验证网络比较差的情况下能不能运行

判断前后端bug
我们一般是通过抓包工具fiddler来抓取数据包来定位问题到底是前端还是后端的,
如果请求没有发出去或者传入的参数有问题,就是前端的问题;
如果前端传入参数和请求都没问题,后端返回的响应数据有问题,那就是后端的问题;
如果前端传入参数和请求是正确的,后端返回的响应数据也是正确的,那么可能就是前端处理返回数据的问题。抓包后看响应码,1,2,3开头,请求错误是前端问题,响应错误是后端问题,请求响应正确,可能就是前端显示问题,4开头,前端问题,5开头,服务器,运维错误

5、fiddler怎么抓https的包

a、fiddler设置代理
b、web端、App端连接使用fiddler代理
c、下载安装fiddler证书

6、web测试和APP测试有什么区别

a、性能方面:
web页面可能只关注响应时间,而app还需要关心流量、电量、CPU、GPU等
b、兼容性方面:
web是基于浏览器的,而浏览器的兼容一般是选择不同的浏览器内核进行测试(IE、Chrome、火狐);APP测试则必须要依赖手机或者平板,要看分辨率、屏幕尺寸、还要看设备系统(Android、iOS)
c、APP还需要考虑异常情景(中断、来电、短信、关机、重启等)
d、APP测试还要测安装、卸载、更新,web测试就不需要考虑这些
e、APP产品都是触摸屏手机,所以测试的时候还要注意手势,横竖屏切换,多点触控等

7、cookie和session的区别

cookie和session都是用来跟踪浏览器用户身份的会话方式
cookie数据保存在客户端,大小受限制,最大4kb
session数据保存在服务器端,更加安全;session会比较占用服务器性能,当访问增多时应该用cookie

8、get和post区别

get是用来查询的,get的参数跟在URL后面,get传送的数据量较小,不能大于2kb
post是用来新增的,post的是在请求体里面,比较安全,post传送的数据量较大,一般不受限制

9、fiddler工作原理

fiddler是个抓包工具,当浏览器访问服务器会形成一个请求,此时,fiddler在浏览器和服务器中间,当浏览器发送请求会先经过fiddler,然后再到服务器,服务器返回数据给浏览器也要经过fiddler,然后才会在浏览器中显示。这样一个过程,fiddler就抓到了请求和响应数据的整个过程。

10、什么时候做接口测试

在开发过程中,前后端完成的进度不一样,后端接口文档写好了,前端还没有写好页面时,我们就可以先做接口测试了。

11、你是怎么做接口测试的

1、问开发要接口文档
2、分析接口文档,不懂的与开发进行沟通
3、讲自己需要测的接口录入postman中,分模块录入,进行冒烟测试
4、提取公共变量,比如:ip
5、编写用例
6、生产测试脚本,做好上下游关系,做好断言
7、处理好第三方挡板接口
8、运动所有接口,有bug发bug(bug用断言来判断)
9、生成接口测试报告

12、分模块录入和提取公共变量的目的是什么

方便后期管理

13、接口测试的用例怎么设计,需要注意些什么

接口测试用例的设计,主要从输入和接口出发:
(1)针对输入,可以按照参数类型进行设计
(2)针对接口处理,可以按照逻辑进行用例设计
(3)针对输出,可根据结果进行分析设计

14、怎么做断言

断言响应状态码
断言响应正文:断言响应中是否有指定的字符串
断言响应时间:断言响应结果返回的时间是否在指定范围

15、接口上下游关系怎么做

我们之前做过关联接口的测试,比如我们的加入购物车需要传入session id,而这个session id值时动态的,是需要登入接口请求成功后,在响应文本中才能获取的,那么我们在jmeter中就需要先运行登录接口请求,然后通过jmeter的后置处理器,比如正则表达式提取器或者JSON提取器来获取 登录接口响应结果中的session id值,将它存入一个变量中传给购物车的接口,这样添加购物车接口就可以请求成功

16、接口测试需要注意些什么

17、性能指标

18、性能测试有哪些测试

19、数据库性能测试怎么做

创建一个测试计划→添加一个线程,并在线程下面,创建一个JDBC Connection,设置相关信息(如数据库地址、驱动程序,数据库用户名和密码)→在线程组下面,再创建一个JDBC Request,我们需要对数据库做插入操作→添加监听器→查看结果树

20、压力测试和负载测试的区别

压力测试:在一定得负载下系统长时间时间运行的稳定性
举例:登录接口,我们先10个用户访问,然后100个用户访问,然后1000个用户访问,关注程序的响应时间,所耗资源或者关键资源消耗
负载测试:对程序不断增加压力,每个增加后,程序的性能情况
举例:运行一天,1个月,一年,关注他们各项指标是否都在正常指标内,是否会内存溢出,是否出现功能性故障等

21、列表、元组、字典的区别

a、列表[ ]、元组()、字典{ }
b、列表和元组是有序的,字典是无序的
c、字典是键值对的形式,且字典中不要出现两个相同的键
d、元组的值时不能被修改的,相当于不可改变的列表

22、占位符:

字符串:%s
整型:%d
浮点型:%f (%.2f表示两位小数)
所有类型:%r

23、for循环与while的区别

for循环适合用在已知循环次数的循环,while适合用在未知循环次数的循环
for循环知道循环次数,先判断后执行;while不知道循环次数,先判断后循环

24、break和continue的区别

break用于终止整个循环,不再执行下面的循环语句,
continue用于终止本次条件的循环,回到下一个条件继续执行,只会跳过本次循环

25、访问列表的值:特别注意切片的处理

a=[1,2,3,4,5,6,7,8,9]
a[2:8:2]
结果是3,5,7
第一个2是指从下标为2的开始取,8是指在前八个里取要的值,第二个2是指每个两个取一次(包括上一个取的值)
a[开始:结束:间隔]

26、列表的方法

添加:append()
删除:del,pop
获取长度:len()
去重:set()
合并两个列表(最简单的是直接用+):extend()

27、selenium(一个自动化测试组件)unittest(Python自带的一个单元测试框架)

问题一:有哪些元素定位方式?(8种)
id、class_name、name、xpath、tag_name等

问题二:你觉得什么样的项目适合做自动化测试?
1、项目周期长且相对稳定
2、需要经常做回归测试和冒烟测试
3、需要在多平台上重复运行相同测试的场景

问题三:你们公司怎么做自动化测试?
我们的自动化测试主要是web UI的测试,主要用于冒烟测试和主要功能的回归测试,或者主流浏览器的兼容性测试
1、编写自动化测试用例,我们根据功能测试用例编写自动化测试用例(主要是加入元素的定位说明),然后依据自动化测试用例,使用Python语言转化成自动化测试脚本,驱动谷歌浏览器,用selenium提供的API进行页面元素的定位,并对元素进行操作(比如点击、输入内容、下拉框选择等)
2、搭建框架,使用Python+selenium+unittest来搭建自动化测试框架,unittest主要是方便管理并执行多个测试用例,获取最终的测试结果报告
3、自动化脚本用来做冒烟和回归测试,脚本编写完之后,我们在每次开发提交测试版本后,用这个脚本来进行冒烟测试,也会用它来做主要功能的回归测试
4、维护测试脚本

问题四:自动化测试用在什么时候
每次版本提交后,用自动化脚本跑一下主要功能,看是否跑得通

问题五:元素定位不到要哪些原因?
1、frame下拉框的原因定位不到元素,要先跳转到frame下,才能定位到元素
2、如果元素是动态的就定位不到
3、页面还没完全加载出来,就对页面上的元素进行操作
4、有些元素需要二次定位(如弹出框登录)
5、元素不可见

28、元素操作方法

输入:.send_keys()
点击:.click()
清空:.clear()

29、浏览器操作方法

尺寸大小:size
后退:back
前进:forward
刷新:refrensh
关闭当前主窗口:close
关闭全部页面:quit
获取当前页面的地址:current_url
获取当前页面的标题:browser_title

30、鼠标操作方法(ActionChains)

右击:context_click()
双击:double_click()
拖动:drag_and_drop()
鼠标悬停:move_to_element()
一直按着一个元素:click_and_hold()

31、键盘操作方法(Keys)

删除键:(Keys.BACK_SPACE)
空格键:(Keys.SPACE)
回退键:(Keys.ESAPE)
回车键:(Keys.ENTER)
全选:(Keys.CONTROL,“a”)
复制:(Keys.CONTROL,“c”)
粘贴:(Keys.CONTROL,“v”)
保存:(Keys.CONTROL,“s”)
剪切:(Keys.CONTROL,“x”)
撤回:(Keys.CONTROL,“z”)

32、frame(下拉框)

切到frame下:switch_to.frame(frame的标记)
返回原有的页面:switch_to.default——content()

33、元素等待有哪几种方式,有什么区别

强制等待:sleep()
隐式等待:implicitly_wait() 一般一个页面用一次就好,如果找不到元素会报错
显示等待:WebDriverWait(实例,等待时长,每隔几秒扫描一次).until(lambda x:x.元素定位)

34、unittest

组成:测试套件、测试用例、测试执行器、测试固件
断言:

35、窗口句柄(window_handle)

获取当前页面的窗口句柄:current_window_handle
获取所有窗口句柄,返回的是一个数组:window_handles
窗口编号:switch_to.window

36、app测试–专项测试

网络测试
安装卸载:adb install 本地安装包/adb uninstall 包名
中断
横竖屏

37、adb连接不上设备是什么原因,你会怎么做

adb连接不上设备,要么是adb连接出了问题,要么是设备出了问题,如果是adb出了问题,可以试着重启下adb服务,adb kill -server 然后adb start -server,也有可能是adb连接有问题,试着重连下设备adb connect ip:端口。如果是设备出了问题,看下设备设置里的开发者选项跟usb调试选项有没有打开,没有的话就打开下,也有可能是设备宕机卡死了,试着重启下设备再进行连接

38、APP测试怎么测

1、功能测试
(1)业务测试
a、单功能测试;b、功能交互测试;c、用户场景测试
(2)特殊点测试
a、横竖屏测试;b、长按、滑动、手势;c、多卡待机
(3)使用fiddler工具辅助测试
a、autoresponder模块,模拟数据返回
b、inspectors模块,模拟请求
c、抓包看数据请求和响应
2、性能测试
(1)启动时间(热启动、冷启动)
(2)CPU占用
(3)内存占用
(4)GPU占用
(5)流量占用
(6)电量耗用
3、其他类测试
(1)兼容性测试
(2)网络测试
(3)安装、卸载、易用性测试

39、手机APP的专项测试有哪些

一般我们在完成功能测试的时候会进行专项测试,比如网络切换测试,安装卸载测试,横竖屏测试,冲突测试等;比如说网络切换测试,我们通常会在断网-2G-3G-4G-WIFI之间进行切换,来检查我们的APP程序在不同的网络环境下的表现

40、APP闪退是什么原因造成的

a、网络问题:网络切换;网络中断;
b、内存问题:内存不够;或者缓存的垃圾过多;内存泄漏;内存溢出
c、资源未加载完:,此时打开APP时会出现闪现
d、权限问题:系统权限被拒绝使用相关权限时会出现闪退;一般是AndroidManifest文件中忘记配置相关权限

app闪退一般是app的缓存垃圾过多,长时间不清理垃圾文件会导致系统越来越卡,出现app闪退的情况,这种就要清理下缓存垃圾就行;还有就是后台运行的程序过多,导致内存不足,也会出现闪退的情况,很多人都有这样情况,打开了一个程序,不用了也不会去关掉,一直放在后台,出现这种情况清理下不用的后台程序就行;还有就是应用的版本兼容问题,如果应用的版本过低,会导致跟设备当前系统不兼容,造成闪退,这样情况更新下应用版本就行,另外就是有些新版本在调试中,也会造成闪退,这种情况卸载安装比较稳定的旧版本就行

41、稳定性测试怎么做?monkey工具怎么使用

monkey的作用是通过一系列的随机操作,来测试手机上的应用的稳定性,其实就是看在高频率的大量操作下,应用会不会出现问题

web协议-接口测试-Python自动化面试题相关推荐

  1. Python自动化面试题,赶紧码住吧!

    嗨嗨,今天发点非常有用的,面试题,这谁不心动,赶紧收藏起来吧 ~ 1.自动化代码中,用到了哪些设计模式? 单例设计模式 工厂模式 PO设计模式 数据驱动模式 面向接口编程设计模式 2.什么是断言( A ...

  2. 67道 Python自动化面试题

    1.自动化代码中,用到了哪些设计模式? 单例设计模式 工厂模式 PO设计模式 数据驱动模式 面向接口编程设计模式 2.什么是断言( Assert) ? 断言Assert用于在代码中验证实际结果是不是符 ...

  3. WEB自动化和appium自动化面试题参考答案

    一.Web自动化测试 1.Selenium中hidden或者是display = none的元素是否可以定位到? 不能,可以写JavaScript将标签中的hidden先改为0,再定位元素 2.Sel ...

  4. 【软件测试 Python自动化】全网最全大厂面试题,看完以后你就是面试官!

    前言 嗨咯 大伙,我是你们的笨蛋程序员 为了让大家更好的理解和学习投入到Python自动化来 找到一份好的资料也是学习过程中,非常重要的一个点.你的检索能力越强,你就会越容易找到最合适你的资料. 我这 ...

  5. Python常见面试题:TCP 协议中的三次握手与四次挥手相关概念详解

    今天来聊聊Python常见面试题中面试频率特别高的一个题目:TCP 协议中的三次握手与四次挥手. 涉及到的知识点有: 1.TCP.UDP 协议的区别 2.TCP 头部结构 3.三次握手与四次挥手过程详 ...

  6. Django +python+bootstrap 开发web,app,接口测试平台(持续更新)

    开发测试平台的初衷:希望web,app的UI自动化和接口的自动化能够一起执行,去掉jenkins构建,代码重构,繁多等问题. 本平台是1.0版本,后续还将完善更多的功能(考虑是作成一个测试的客户端还是 ...

  7. java和python的web自动化有什么区别-Java Web开发和Python Web开发之间的区别

    今天的文章讨论了Java Web开发和Python Web开发之间的区别.我不鼓励我们在这里从Java Web迁移到Python Web开发.我只是想谈谈我的感受.它不一定适合所有情况,仅供我们参考. ...

  8. 【番外篇】2W字诚意满满的新活:常见接口测试69道面试题,附带答案

    最近发现面试题热度 挺好的,不过大家博客都只有面试题,从来都不带答案,顺手就码了点收集到的博客问题的答案 共69道,2W字,耗时两天(疯狂暗示)欢迎催更吹水,来一个人就是一份催更动力点击并输入暗号:C ...

  9. 测试技能整理-python自动化

    pycharm工具基本使用及python基本 python简介 Python是一种跨平台.简单易学.面向对象的编程语言一门计算机语言 自动化测试-通过代码取代手工测试 市场自动化语言:python . ...

最新文章

  1. 用Remoting 实现一个文件传输组件
  2. ipython怎么安装_安装ipython最简单的方法
  3. 远程桌面,设置为支持2个人连接
  4. FileChannel应用实例——本地文件读数据
  5. [webpack3.8.1]Guides-4-Output Management(输出管理)
  6. Spark性能优化指南——基础篇
  7. android air flash,在Adobe Flash上​​触摸滚动Android上的Air
  8. [转载] java synchronized静态同步方法与非静态同步方法,同步语句块
  9. 干货 分布式事务 一文通
  10. 自定义选中文字背景色
  11. kettle的下载|运行及简单kettle数据抽取(MAC kettle|windows Kettle)
  12. VSCode印象笔记插件--EverMonkey
  13. 列线图实现预测模型可视化
  14. Java笔记——关于设置自定义字体、全局字体方面和getFont()的使用
  15. App 常用图标尺寸规范汇总
  16. ps图标长投影如何做?
  17. 六字诀养生法 气功口诀
  18. C语言学习-- 计算机原理及二进制
  19. 东晋琴家、雕塑家、画家、哲学家戴逵
  20. 《自控力》分享一些减缓压力小妙招

热门文章

  1. python实现股票自动交易_利用python3.5 +TK 开发股票自动交易伴侣
  2. 大数据利器之神兵淬炼谱:VMware-Linux-Hadoop-Spark-Anaconda-Pycharm琅琊榜
  3. 前缀中缀后缀表达式介绍
  4. stc15f104w模拟串口使用
  5. jmockit教程_【原创】如何使用Jmockit进行单元测试
  6. 运行时异常和编译异常
  7. ArcGIS教程:加权叠加
  8. android appLink
  9. CCF201812-5 管道清洁 题解(最小费可行流)
  10. mysql导入数据到clickhouse