selenium原理描述

selenium原理描述

1.IDE,俗称集成开发环境(编辑器),client(1.编写脚本,形成操作指令集,运行时,会启动webdriver
2.webdriver()
webdriver启动后,绑定IP和端口,向发送请求的连接创建session
webdriver提供的依http协议方式提供API接口服务,client通过API接口访问webdriver,发送指令,数据格式是JSON格式
webdriver接到指令后,按照自己封装的原生的浏览器API,对浏览器进行操作
webdriver将操作后的结果,依照json数据格式返回给客户端

Appium原理描述

1.IDE,俗称集成开发环境(编辑器),client(1.编写脚本,设置APP相关的参数,形成操作指令集,将指令通过HTTP协议传输给Appium server
2.Appium Server
提供的依http协议方式提供API接口服务,client通过API接口访问webdriver,发送指令,数据格式是JSON格式
Appium Server接到指令后,交给Android系统启动的监听服务(uiautomator2-server)
Appium Server将操作后的结果,依照json数据格式返回给客户端
3.Android/IOS
通过uiautomator2-server提供agent服务,接收来自appiumserver指令
完成指令并返回操作结果

手写代码:

自定义一个wait功能,可以自己控制等待时间,一但找到想要元素,立即终止等待,返回并进行操作
element 返回一个element
def function():
find_element_by_xxx
1.自己利用find_element
2.wait until()
wait = WebDriverWait()
3.返回谁

while True:
	try:
	      element = find_element_by_xx
	except:
	#如何控制时间
	       sleep(1)
	        if count >30:
		return None
	else:
	        return element

接口相关理论介绍

接口:信息交换,信息共享,计算机世界:数据,规则,准则(“协议”) 建立良好的可靠的安全的沟通方式,传送方式
接口定义:就是各方按照某种规则/协议进行信息的交互或者数据的交换
发生在哪:模块与模块之间
服务与服务之间
系统与系统之间(服务)

产品分层:
前端:http(tomcat(动态,jsp,servlet),nginx(静态),js(npm))

后端:tomcat(java) 接口服务(微服务)
进行接口相关操作
协议,域名,端口,URI(统一资源名称,路径)(前面所有的内容形成了URL) 443
协议的价值:按照某种规则进行数据的传递,共享,便于接收到数据后,进行数据解析,获取数据,帮助我们建立可靠的安全的沟通方式。
访问一个web页面的过程是什么?请用专业角度?
1.通过HTTP,get发送请求
2.通过tcp协议完成三次握手后,创建session,传输数据
3.http保持会话,完成数据传输后再断开连接

接口测试的思路

采用的思路是规范和方法先行,其次是工具的选择,人员的培训,然后是实施和过程化(框架化),持续集成

为什么要进行接口自动化测试?
系统越来越复杂,产品设计都是按照接口设计进行的,数据之间交互,通过接口提供服务完成,接口变成了我们测试对象
产品分层多(前端,后端,业务层,中台,数据层,存储层,架构层)所以层之间的工作,数据交互,都是通过接口
接口测试容易形成自动化测试(GUI),也容易实现持续集成,相比较GUI自动化,比较稳定,可以减少测试人力,成本与时间
缩减了测试周期,支持快速迭代,接口的持续集成降低了成功提高效率

接口测试原理

根据规范(参数,协议,调用方法,code含义,返回数据的意义等)模拟请求,向接口发送数据(报文),再获取返回结果(响应),依据响应进行断言。
设计用例
1.规范(参数,协议,调用方法,code含义,返回数据的意义等)
2.断言(设计断言,返回数据的意义)(1.返回的code 2.返回的值)
具备的条件:(http)
接口:URI,path,
方法:get,post(send,receice)
get获取信息 post增加资源
参数:get(query string)(key,value,json,文件)可以带参数
response(响应):正确响应,正常业务的响应数据,还有错误的响应(error message):(null,空参数,类型不匹配,)
错误提示()
提醒一下(1个用例要有多个断言,不能只盯状态码,不能只看接口本身的断言,断言相关联的接口(接口关联))

接口测试流程:
需求讨论-》需求评审-》确定需求-》产品接口定义-》根据需求文档以及接口文档定义(设计测试用例)-》用例评审-》编写接口测试用例-》执行-》维护

测试用例设计
接口功能(业务功能,接口本身功能,非业务功能(性能)),合法性校验(身份),异常处理(1.非法数据的校验 2.非常规(大量)),安全性,可靠性(接口并发)
选择对象,按照业务流(业务流程),数据流,寻找断言点,依据相关接口的测试(输入输出)
接口测试从功能角度,业务角度,数据流角度,性能问题

测试用例包括

功能点 - 功能点,测试环境,测试数据,执行操作和预期结果
如果一个接口过于复杂,可以对接口进行接口结构划分(分段,分片(细化功能,层次,平台))
用例环境
程序内部环境和程序调用的外部接口(注意断言)
测试数据
系统数据,环境数据,配置数据
接口参数数据,正常场景,异常场景
业务逻辑(构思数据,数据从哪里来到哪里去,经历了什么过程,做了什么改变)
边界值分析:
业务边界
输入参数合法:不合法,空,超长,null
覆盖所有的必选的参数(接口文档中有说明)
数据组合可选参数(必选和可选进行组合,必须无可选,全可选部分必选)
参数的有无
参数顺序,个数,类型,长度
参数的类型数值大小,数值的范围
参数字符串长度,null,max,max+1,min,min-1
特殊符号!@#¥%。。。&*—+
异常分析
正常数据的异常,并发测试,事务测试
错误数据的异常
其他异常:重复提交(post,阻止重复提交)
安全性测试
用户名,session,敏感数据脱敏处理,身份证,卡号,生日,密码,照片

测试过程验证点

​ 接口返回数据:
​ 返回json数据的层次关系与文档是否一致
​ 数据类型,金额,数值,负数,小数转换
​ 接口返回数据与接口文档是否一致
​ 接口返回数据与数据库是否一致
​ 接口返回数据是否符合业务逻辑(与实践关系,数据与时间,以及业务的匹配)
​ 对于列表,应根据请求参数,也应该验证列表长度
​ 负面的测试用例应该验证error message

接口测试质量评估标准

​ 业务功能的覆盖率
​ 业务逻辑的覆盖率
​ 数据的验证是否达到要求
​ 接口的异常场景是否达到要求
​ 接口的覆盖率(数量,功能,规则,参数)
​ 代码覆盖率是否达到要求
​ 性能指标
​ 安全指标

fiddler抓包

1.找接口(对象)/testwnsales
2.找方法 get/post
3.找参数
4.找请求体(header(Cookie,Conntent-Type))
5.找响应体(header,状态码,响应的数据)

Conntent-Type
1.application/x-www-form-urlencoded;charset=utf-8 表格式提交参数
2.multipart/form-data上传文件
3.application

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值