web协议-接口测试-Python自动化面试题

news/2024/4/30 13:12:05/文章来源:https://blog.csdn.net/qq_45684708/article/details/126952857

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_11681.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql主从切换流程

Mysql主从切换流程1.Mysql 版本2.场景3.环境4.切换步骤4.1 切断应用对主库的流量4.2 主库备库设置只读4.3 查看备库复制进程状态4.4 比对主备两边的GTID是否一致4.5 确认是否真正同完4.6 从库停掉复制进程并清空主从信息4.7 从库关闭只读开启读写,转为新主库4.8 主库…

在线反馈,急速解决,移动云视频客服让沟通从此不设限

对于产品而言,用户体验至关重要,而客服的服务质量就是用户体验的“灵魂”。随着移动云多达230全栈产品在云计算市场中的热卖,人们在使用产品中难免也会产生诸多问题,考虑到消费者在与客服沟通时打字描述太繁琐,在线沟通…

九零后程序员心塞:“30岁,月薪还没过万,是我的问题吗”

2020年有职场专家指出: 四千元的月薪,在国内算是中等的薪资水平。 每个月能赚到四千块,就打败了一半的国人; 如果每个月能赚8000~10000,那你就能跑赢90%的国人。 这几个数字是怎么得出来的? 我们可以从两…

上次没砍我的,这次我又来了;看完这篇还不明白 Binder 你砍我

最近一段时间由于工作,接触到 Framework 部分比较多一点,也难免要和 Binder 打一些交道, 因为在 Android 系统中,每一个应用程序都是由一些 Activity 和 Service 组成的,这些 Activity 和 Service 有可能运行在同一个进…

java基于springboot+vue的旅游心得分享攻略系统 elementui

SpringBoot是当前最流向的一个框架,它的配置更加的简单,使开发变得更加的简单迅速。 Spring Boot 的基础结构共三个文件,具体如下: src/main/java:程序开发以及主程序入口; src/main/resources:…

vue serve及其与vue-cli-service serve之间的关系

vue serve及其与vue-cli-service serve之间的关系 目录 vue serve及其与vue-cli-service serve之间的关系 一、前言 二、vue命令 三、package.json的preset预置的配置命令参数 3.1、依赖与开发依赖 3.2、vue/cli-service 的内部 3.3、vue -***命令如何跑起来 四、vue …

HTML篇三——(2)

目录一、HTML常用标签1.5 文本格式化标签1.6 <div> 和<span>标签一、HTML常用标签 标题标签、段落标签、换行标签见&#xff1a;https://editor.csdn.net/md/?articleId126970642 1.5 文本格式化标签 文本格式化标签是为文字设置粗体、斜体以及下划线等效果&am…

有了这个 Python 库,以后再也不用写正则表达式了

正则表达式大家应该有了解过吧&#xff1f;它功能很强大&#xff0c;但有一个痛点就是不太容易读写&#xff0c;我们需要了解正则的很多语法规则才能写出一个健壮的正则表达式&#xff0c;很多朋友估计听到正则表达式估计都焦头烂额了。 就没有解决办法吗&#xff1f; 有的&a…

单播以及多播的书写实验

实验目的&#xff1a; 学习对每个分类单播的理解以及书写 学习对每个分类多播的理解以及书写 实验说明&#xff1a; 通过此实验练习&#xff0c;可以更好的掌握IPv6地址书写以及分类 实验环境&#xff1a; 两台支持SPSERVICES的IOS的路由器 直通线以及串口线 实…

树莓派高级开发之树莓派博通BCM2835芯片手册导读与及“相关IO口驱动代码的编写”

首先我们要知道&#xff0c;驱动的两大利器&#xff1a;电路图&#xff08;通过电路图去寻找寄存器&#xff09;和芯片手册 一、寄存器的介绍 芯片手册第六章的89页&#xff0c;GPIO有41个寄存器&#xff0c;所有访问都是32位的。Description是寄存器的功能描述。GPFSEL0&…

2022年最新《Java八股文面试宝典》全网独一份!(效率最高、知识最新、包含各个技术栈)

今天在脉脉刷到了这么一条消息&#xff0c;现在这个大环境&#xff0c;都后悔学Java了&#xff0c;想转行学前端&#xff0c; 看完很是震惊&#xff0c;据大数据统计&#xff0c;Java的待遇是要好过前端的。小伙伴竟然被卷到想要转行......但是行情这个东西&#xff0c;也不是我…

vue3.x之isRef toRefs isRef readonly 公共数据配置 axios配置 路由配置

isRef toRefs toRef 参数&#xff1a; (源对象 , 源对象属性) 可以用来为源响应式对象上的某个 property 新创建一个 ref。然后&#xff0c;ref 可以被传递&#xff0c;它会保持对其源 property 的响应式连接。 也就是说源响应式对象(toRef的第一个参数) 上的某个 property…

【3D视觉】PointNet解析

您好&#xff0c;各位&#xff01;今天就基于3D点云数据的分类以及分割模型 : PointNet与PointNet做一个简单的解析&#xff0c;解析部分将结合论文与代码&#xff0c;加上一些我个人微不足道&#xff08;也不一定对&#xff09;的见解在里面。 在看PointNet与PointNet之前&am…

第三章实验

实例一print("今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?\n") number = int(input("请输入您认为符合条件的数:")) if number%3 == 2 and number%5 == 3 and number%7 == 2:print(number,"符合条件:三三数之剩二,五五数…

GBase 8s是如何实现库中数据安全保障的

随着计算机网络的广泛应用&#xff0c;网上信息的开放性与共享性日益增强&#xff0c;但随之而来的是信息安全问 题愈发严重。数据库是这些数据信息存储的主要场所&#xff0c;因此确保数据库中存储以及存取信息的安 全是确保网络安全的首要问题。为此&#xff0c;需要在通用的…

Nginx在Linux下的安装

✨ Nginx在Linux下的安装安装pcre安装其他的依赖安装Nginx(把压缩包放到opt目录)&#x1f4c3;个人主页:不断前进的皮卡丘&#x1f31e;博客描述:梦想也许遥不可及&#xff0c;但重要的是追梦的过程&#xff0c;用博客记录自己的成长&#xff0c;记录自己一步一步向上攀登的印记…

软件测试 git和gitee集成Pycharm 基于Flask的Mock Server服务器

文章目录1 Git1.1 作用1.2 工具1.3 名称解释2 安装git和注册Gitee3 使用Git(1)clone克隆命令(2)初始化(3)查看文件状态(4)文件提交暂存区(5)提交到本地版本库(6)修改文件(7)查看日志(8)跳转到提交的时间截点4 git和gitee集成Pycharm4.1 在Pycharm安装git和连接gitee(1)新建项目…

交互与前端3 前端需求简单梳理

说明 技术的终点是前端 我是从模型/算法作为起点的,顺着工作的需要和自己的兴趣&#xff0c;慢慢的逐步走到了前端。我想现在也是时候把前端搞好了&#xff0c;前端有几个作用&#xff1a; 1 对外可以作为广告。技术最终还是要考虑变现的。2 与外部协同。有很多工作是需要外部…

关于穿越机FPV视频果冻效应的讨论

关于穿越机FPV视频果冻效应的讨论1. 名词定义2. 摄像原理2.1 快门分类2.2 卷帘拍摄3. 产生原因4. 解决方法4.1 振动出处4.2 软件方法(辅助作用)4.3 硬件方法(直接办法)5. F450试验机遇到的问题5.1 现象5.2 测试5.3 减震改善5.4 其他改善5.5 初步结论5.6 改进方向6. 总结7. 参考…

基于ssm的远程家庭健康监测管理系统设计与实现-计算机毕业设计源码+LW文档

开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;…