接口自动化,断言方法,深度定位错误

接口自动化,断言方法,深度定位错误。

代码如下:

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # @Time    : 2017-07-27 13:49
 4
 5 # 断言方法,比较两个list或dict的不同之处
 6
 7 a= {‘b‘:[1,2,5,8],‘c‘:3,‘d‘:2,‘f‘:[1,2,3],‘g‘:[1,2,3,[2,‘2‘,2]],‘h‘:‘5‘}
 8 b= {‘b‘:[1,2,‘3‘],‘c‘:2,‘e‘:‘4‘,‘f‘:[1,2,3,5],‘g‘:[1,2,3,[1,2]],‘h‘:[1,2]}
 9
10 def compare_json_data(A, B, L = [], xpath = ‘.‘):
11     if isinstance(A, list) and isinstance(B, list):
12         for i in range(len(A)):
13             try:
14                 compare_json_data(A[i], B[i], L, xpath + ‘[%s]‘ % str(i))
15             except:
16                 L.append(‘▇▇▇ A中的key %s[%s]未在B中找到\n‘ % (xpath, i))
17     if isinstance(A, dict) and isinstance(B, dict):
18         for i in A:
19             try:
20                 B[i]
21             except:
22                 L.append(‘▇▇▇ A中的key %s/%s 未在B中找到\n‘ % (xpath, i))
23                 continue
24             if not (isinstance(A.get(i), (list, dict)) or isinstance(B.get(i), (list, dict))):
25                 if type(A.get(i)) != type(B.get(i)):
26                     L.append(‘▇▇▇ 类型不同参数在[A]中的绝对路径:  %s/%s  ??? A is %s, B is %s \n‘ % (xpath, i, type(A.get(i)), type(B.get(i))))
27                 elif A.get(i) != B.get(i):
28                     L.append(‘▇▇▇ 仅内容不同参数在[A]中的绝对路径:  %s/%s  ??? A is %s, B is %s \n‘ % (xpath, i, A.get(i), B.get(i)))
29                 continue
30             compare_json_data(A.get(i), B.get(i), L, xpath + ‘/‘ + str(i))
31         return
32     if type(A) != type(B):
33         L.append(‘▇▇▇ 类型不同参数在[A]中的绝对路径:  %s  ??? A is %s, B is %s \n‘ % (xpath, type(A), type(B)))
34     elif A != B and type(A) is not list:
35         L.append(‘▇▇▇ 仅内容不同参数在[A]中的绝对路径:  %s  ??? A is %s, B is %s \n‘ % (xpath, A, B))
36     return L
37
38 def Assert(A,B):
39     C = []
40     compare_json_data(A, B, C)
41     assert len(C) == 0, "\n"+"".join(C)
42 Assert(a, b)

效果图如下:

时间: 2024-11-02 11:06:10

接口自动化,断言方法,深度定位错误的相关文章

jmeter接口自动化 读取不到参数化文件 解决方法

最近在研究jmeter,把一些操作记录下来,我的测试群,喜欢的加511057741一起学习交流,熟悉常见抓包工具,Python编程,网络协议,LR,jmeter网络安全,环境搭建,接口自动化 jmeter做接口自动化的是,一定要用到引入外部文件 这里主要解决的是引入了csv文件之后,读取不到参数的解决 添加线程,添加请求断言结果等就不说了 这里说重点 1 点击浏览把写好的接口测试用例拿过来 2 利用excel写完接口测试用例之后,需要手动保存为csv格式,否则读取不到参数 3 测试用例有多少个字

python接口自动化(响应对象方法)

python接口自动化(响应对象方法) 一.encoding作用 获取请求的编码(在不设置响应编码时,响应的信息默认使用的是请求的编码格式):r.encoding 设置响应的编码:r.encoding='编码格式’ 二.headers作用 获取响应的信息头:r.headers 三.URL作用 获取响应的URL:r.url 四.status_code作用 获取响应的状态码:r.status_code 五.cookise作用 获取响应的cookies信息:r.cookies(返回字典对象) 可以通过

什么?接口中方法可以不是抽象的「JDK8接口新语法的深度思考」

先赞后看,养成习惯 文本已收录至GitHub开源仓库 Lu_JavaNodes 码云仓库地址Lu_JavaNodes,包含教程涉及所有思维导图,案例代码和后续讲解视频,欢迎Star增砖添瓦. 前言 在传统的接口语法中,接口中只可以有抽象方法.在是在实际的使用中,我们往往会需要用到很多和接口相关的功能(方法),这些功能会单独的拿出开放在工具类中. 工具类:类中所有的方法都是静态的 例如:Collection 和 Collocations,Collection 是一个集合接口,而我们需要很多集合相关

python接口自动化框架

基于 python 的接口测试框架 接口测试 · jphtmt · 于 5 月前发布 · 最后由 jphtmt 于 4 月前回复 · 3553 次阅读 项目背景 公司内部的软件采用B/S架构,管理实验室数据,实现数据的存储和分析统计.大部分是数据的增删改查,由于还在开发阶段,所以UI界面的变化非常快,之前尝试过用python+selenium进行UI自动化测试,后来发现今天刚写好的脚本第二天前端就改了页面,又得重新去定位元素什么的,消耗大量的精力与时间维护自动化脚本.针对此种情况,对接口测试较为

python3+request接口自动化框架

首次书写博客,记录下写的自动化接口框架,框架比较简单,哈哈哈,算是记录下历程把!~~~ 一.本次框架由python3.6 书写 1.准备代码环境,下载python3.6    下载地址:https://www.python.org/downloads 2.下载pycharm 软件. 二.开始创建python接口自动化框架: 1.这是我创建的框架中的各个文件夹,分别有config  配置文件夹.fengzhuang   将接口用get post  两种传输方式进行封装并自动来区分执行. 2.log

python接口自动化2-发送post请求

前言 发送post的请求参考例子很简单,实际遇到的情况却是很复杂的,首先第一个post请求肯定是登录了,但登录是最难处理的.登录问题解决了,后面都简单了. 一.查看官方文档 1.学习一个新的模块,其实不用去百度什么的,直接用help函数就能查看相关注释和案例内容. >>import requests >>help(requests) 2.查看python发送get和post请求的案例 >>> import requests       >>> r

关于接口自动化

本文主要介绍如何用Java针对Restful web service 做接口自动化测试(数据驱动),相比UI自动化,接口自动化稳定性可靠性高,实施难易程度低,做自动化性价比高.所用到的工具或类库有 TestNG, Apache POI, Jayway rest-assured,Skyscreamer - JSONassert. 简介: 思想是数据驱动测试,用Excel来管理数据,'Input' Sheet中存放输入数据,读取数据后拼成request 调用service, 拿到response后写

Java + Excel 接口自动化

最近项目比较悠闲,想找点事干,写了个 Excel 接口测试的 "框架" 以前用 python 写过一个,这次用 java, 应该说框架都不算,反正就是写了,能帮我解决问题就行. 当然咯,也许会问干嘛那么麻烦直接用 feed4testng, 或者 testng 就行了,没事找事干还专门写个这玩意... 呵呵,就闲的蛋疼! 文笔有限不知道怎么写,直接上代码: 欢迎各位指定,或提出好的意见,总觉得还有很多不好的地方. 结构就这破样了, E 文也不好, 随便捣鼓,开心就好. 哈哈 ExcelU

接口自动化学习笔记

虫师的接口自动化学习笔记(虫师原创----http://fnng.cnblogs.com) web应用接口测试分为: 1.模块接口测试:主要测试模块之间的调用与返回 2.web接口: a.服务器接口:测试浏览器与服务器的接口 b.外部接口:指调用的接口由第三方系统提供 接口测试的意义: 1.保证系统的稳定性 2.将bug控制在项目前期 3.检查服务器的异常处理能力 我们通常把前端的验证称为弱验证,因为它很容易被绕过,这个时间如果只站在功能的层面时行测试,就很难发现一些安全的问题.不以前功能为入口