上一篇写了如何从DB获取预期.实际结果,这一篇分别对不同情况说下怎么进行对比. PS:这部分在JSON对比中也适用. 1.结果只有一张表,只有一条数据 数据格式:因为返回的是dicts_list的格式,因此一条数据时,格式为[dict],可以通过list[0]的方式取到dict,也可以for循环遍历list取dict. 预期结果:id_预期 + 录入的数据 + 代码自动生成的:如createtime 实际结果:id_实际 + 录入的数据 + 代码自动生成的:如createtime 很显然,录入的…
1.已知json串构成的情况下判断 先构造一下场景,假设已经把各个数据都移除掉不对比的字段 图1 预期.实际结果,复杂接口返回多层嵌套json时,同下 图2 预期.实际结果值为:{child_json1:list1,child_json2:list2} 其中list1.list2为child_json,值为:[dict1,dict2] 其中dict1.dict2为child_child_json,最底层json,无嵌套,值为:{key1:value1,key2:value2} 如果一开始就直接判…
上一篇实现数据分离升级版--从DB获取数据,以及对应的请求实现,作为一个case,还缺少了预期结果与实际结果的获取及对比.因为前面的文章已经说过接口返回值的获取及对比,所以这篇不说这块了,这篇说一下DB存储部分的获取. 上一篇有提过如何从服务器获取mysql二进制日志获取操作涉及到哪些DB变化.我们手工新增后,可以看到对应的数据库结果,其中主要分三块:①手工输入的内容:②数据库自己生成的内容,如自动生成的递增id:③被测代码生成的内容,如uuid.版本信息.其中①的部分是我们主要要校验的,②.③…
开始做实际项目前,先拿个网上的简单API练下手 一.API说明: 接口信息 接口名:京东获取单个商品价格 地址:http://p.3.cn/prices/mgets 入参:skuids=J_商品ID&type=1 接口返回:[{"cbf":"","id":"","m":"","op":"","p":""…
1.接口测试简介 1)先简单介绍下接口测试,那么什么是接口测试呢? 百科的回答:接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点. 看起来有点拗口,我们试着用通俗一点的方式说明下,把系统比作一家公司,那么使用系统的好比是个人或者其他公司. 对外接口(我们常说的接口测试指的是对外接口): 那么使用方想要找公司办事情的时候,通过邮箱.电话.聊天工具之类的,通过公司对外提供的渠道,如应聘找HR,有问题找客服,商务合作找销售,而不能直接找到公司…
因为人力.团队技术问题,选用robotframework来做自动化,首先说下环境搭建 齐涛道长的入门教程非常棒:http://blog.csdn.net/tulituqi/article/details/7583179 ---------------------------------开始安装依赖的语言---------------------------------- 1.首先安装python,robotframework框架是python编写的,因此必须要装,安装时勾选添加到系统变量 pyt…
1.创建django项目 a.使用命令创建,安装完django之后就有django-admin命令了,执行命令创建即可,命令如下: django-admin startproject my_django#最后面的是项目名称,可以随便起 b.使用pycharm创建,打开pycharm之后,选择新建项目,然后选择django项目,在路径写上项目名称,再填一个应用的名称创建就可以了,实质上用pycharm创建的项目它也是在调用django-admin命令 点击create新建,pycharm会自动生成…
一.Python入门必备基础语法# 标识符:python中我们自己命名的都是标识符# 项目名 包名 模块名# 变量名 函数名 类名# 1:字母 下划线 数字组成 命名的时候不能以数字开头# 2:见名知意:不同的字母和数字之间用下划线隔开# 3:项目名 包名 模块名 变量名 函数名 都是小写字母,不同的字母之间用下划线隔开# 4:类名 首字母大写驼峰命名 StudentInfo HttpRequest# 5:不能以关键字作为标识符 int str float class def... # 行和缩进…
简介 上一篇说了关于json数据处理,是为了断言方便,这篇就带各位小伙伴实战一下.首先捋一下思路,然后根据思路一步一步的去实现和实战,不要一开始就盲目的动手和无头苍蝇一样到处乱撞,撞得头破血流后而放弃了.不仅什么没学习 到,自己的自信心都受到打击了,自己都怀疑自己.其实你是最棒的,天生我材必有用,好了废话不说,进入实战——以查看快递物流接口为例. 大致流程步骤:web页面操作—>抓包看参数和url—>代码模拟接口请求—>取到接口返回结果—>断言 web页面操作 1.浏览器输入快递物…
上篇讲到实际的请求数据放置在json文件内,这一部分记述一下python读取json文件的实现. 代码如下(代码做了简化,根据需要调优:可做一些容错处理): 1 import json 2 3 class operateJson(): 4 def __init__(self,jsonPath=None): 5 self.jsonPath = jsonPath #传入json文件路径 6 7 #读取json文件的内容 8 def readJson(self): 9 with open(self.j…
实现代码如下: import json #定义一个字典.一个列表.两个字符串({}中必须是双引号) di1={"} di2=[{"}] di3='{"name":"badbadboy","age":"24"}' di4='[{"name":"badbadboy","age":"24"}]' #将列表/字典转换为json字符串对象…
通过上篇文章日志管理模块loguru简介,我们已经知道了loguru日志记录模块的简单使用.在自动化测试项目中,一般都需要通过记录日志的方式来确定项目运行的状态及结果,以方便定位问题. 这篇文章我们使用loguru模块来记录接口自动化测试中的日志. 一,封装日志记录器 实际项目中,我们不可能每个模块都去导入loguru模块,每个模块都单独去写一遍日志配置,这样麻烦又冗余. 最好的方式是针对项目单独封装.配置一个日志记录模块,作为公共的日志记录器,这既其他模块进行调用,也方便维护. 在logger…
网络请求模拟小技巧 在学习了一段时间的Python语言后,咱也大概对Python的语法和逻辑有了一定的积累,接下来,可以为接口自动化测试开始尝试做一些比较简单的准备工作啦~跟着我一起来来来~ 扩展库requests 一般来说接口测试都是基于HTTP和HTTPS的网络请求,Python中有很多自带原生库和扩展库均可以实现.Python模拟HTTP请求有两种方式,一种是使用httplib模块,一种是使用requests模块,我个人比较倾向于使用requests库,该库把请求的框架都搭建好了,使用简洁…
1.首先接口测试是跳过前端界面对服务端的测试,UI测试是对前端界面的测试,从分层测试的角度考虑,两者不应该是可以互相取代的关系.   2.从公司开展自动化的的角度考虑,可以重点关注这个项目开展接口自动化和UI自动化的分别需要的时间消耗.自动化测试人员成本.项目开展自动化测试的可行性.接口自动化和UI自动化的投入产出比,最终来确定开展接口自动化和UI自动化的比重.   3.从自动化测试覆盖率和难易程度来考虑,一般来说,系统中可测试的接口数量要比前端界面的功能点要少,并且接口的改动频率比前端界面改动…
本项目实现接口自动化的技术选型:Python+Requests+Pytest+YAML+Allure ,主要是针对之前开发的一个接口项目来进行学习,通过 Python+Requests 来发送和处理HTTP协议的请求接口,使用 Pytest 作为测试执行器,使用 YAML 来管理测试数据,使用 Allure 来生成测试报告. 接口项目开发学习: 使用Flask开发简单接口(1)--GET请求接口 使用Flask开发简单接口(2)--POST请求接口 使用Flask开发简单接口(3)--引入MyS…
本文转自:http://www.cnblogs.com/legendxian/archive/2010/01/25/1655551.html 接上篇Asp.Net大型项目实践(10)-基于MVC Action粒度的权限管理(在线demo,全部源码) 在线Demo: 地址:http://218.60.8.35:1234/ 服务器:网通 端口:不要禁用1234端口应该就可以访问 注意:连了数据库的,时间仓促肯定有漏洞,不要捣乱哈:) 登录用户: 1.用户名:牛头人战士 密码:000000 权限:有全…
开发十年,就只剩下这套Java开发体系了 >>>   最近,又临近博主所负责的一个大型项目的发版了.之前有提到过,该项目涉及到30-40台服务器的发版.且项目客户规定发版需在晚上10-11点左右开始进行,这里博主不得不说每次发布最后都是眼花缭乱. 博主最近想了下,还是决定做些自动化发版的脚本:首先,在批量关闭服务器.批量重启服务器.批量延迟重启服务器.以及批量nginx重启.kill.reload方面都可以做成自动化脚本.当然,还有资源备份.代码备份等等. 自动化脚本来发版后,将一键关闭…
获取token 在做接口自动化的时候,经常会遇到多个用例需要用同一个参数token,并且这些测试用例跨.py脚本了. 一般token只需要获取一次就行了,然后其它使用unittest框架的测试用例全部调用这个参数,那么如何实现呢? 虽然python里面有个全局变量global,但这个只是针对于在同一个.py里才有效,跨脚本就不起作用了. 解决思路 1.首先把公共数据单独抽出来,用一个文件去管理,如yaml文件 2.写一个读yaml文件的get_token()函数放到a.py,去读取需要的数据 3…
获取token 在做接口自动化的时候,经常会遇到多个用例需要用同一个参数token,并且这些测试用例跨.py脚本了. 一般token只需要获取一次就行了,然后其它使用unittest框架的测试用例全部调用这个参数,那么如何实现呢? 虽然python里面有个全局变量global,但这个只是针对于在同一个.py里才有效,跨脚本就不起作用了. 解决思路 1.首先把公共数据单独抽出来,用一个文件去管理,如yaml文件 2.写一个读yaml文件的get_token()函数放到a.py,去读取需要的数据 3…
Lego-美团点评接口自动化测试实践 2018-02-07 转自:Lego-美团点评接口自动化测试实践 目录 一.概述  1.1 接口自动化概述  1.2 提高ROI    针对“减少投入成本”    针对“增加使用率”  1.3 Lego的组成二.脚本设计  2.1 Lego的做法  2.2 测试脚本  2.3 配置文件    使用SQL最大的好处就是灵活    多标签时,可以分组展示    报告更美观丰富    支持多团队三.用例设计  3.1 一些思考    通用    校验    健壮 …
目录 0.引言 1.什么是Visual Studio项目模板 2.IWizad接口 3.通过Visual Studio扩展开发实现领域驱动开发 3.1 使用VSIX+ProjectTemplate创建项目模板 3.2使用ItempTemplate创建自定义项模板 3.3实现可视化添加实体字段,自动生成应用层(Dto.IAppService.AppService).领域层(Entity).展现层(Views.Controller).基础设施层(IRepository)等. 4.结语 文章是有图片的…
这是<ABP大型项目实战>系列文章的一篇.   项目发布到生产环境后难免会有错误. 那么如何进行调试和排错呢?   我看到俱乐部里有人是直接登陆生产服务器把数据库下载到开发机器进行调试排错. 这种办法是不适用于大型项目的: 首先,大型项目(特别是全球都有分公司的大型项目)很有可能24小时都有人在使用.所以尽量避免直接登录生产服务器操作,就算部署,也应该用DevOps.蓝绿部署等办法. 另外,如果大型项目有采用金丝雀发布和A/B测试,那么把数据库下载到开发机器这种方法是很不适用的. 即使大型项目…
阿里巴巴CI:CD之分层自动化实践之路 2018-05-30 摘自:阿里巴巴CI:CD之分层自动化实践之路 目录 1 自动化  1.1 为什么要做自动化?  1.2 自动化的烦恼  1.3 自动化的追求2 分层自动化3 阿里分层自动化的实践  3.1 首先,分层自动化工具革命  3.2 其次,项目流程革命 6月29日,由阿里云研发协同RDC.阿里云云效和云栖社区联合举办的“首届阿里巴巴研发效能嘉年华”上,阿里巴巴高级产品经理金桐带来“分层自动化实践之路”的演讲.本文从为什么要做自动化开始谈起,进…
为什么使用Golang做自动化 顺应公司的趋势学习了Golang之后,因为没有开发那么多的时间和项目来实践,怕步此前学习Java缺少练习遗忘殆尽的后尘,决定利用工作之余的时间把此前用Python的写的自动化的代码使用golang进行重构. 我一直都有总结的习惯,也喜欢用代码解决一些问题,此前这一块都是用Python来完成的,后续会逐渐转移到Golang.我相信通过挖掘一些项目内部能做的事情做练习,以后肯定能成为一个合格的gopher. 最终想实现的效果 终极目标:与开发的代码放在一起CI,作为C…
2020年第二期<python接口自动化+python测试开发>课程,12月15号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:12月15号-3月29号,每周六.周日晚上20:30-22:30 报名费:报名费3000一人(周期3个月) 联系QQ:283340479 课表如下 课程主要涉及的内容: 1.fiddler抓包与接口测试(测试基础必备) 2.python+pytest框架实现接口自动化测试(pytest框架甩unittest几条街) 3.httpr…
摘自:https://testerhome.com/topics/13389 一.背景  上一篇讲了Jmeter 接口自动化-脚本数据分离实例,我们知道怎么利用Jmeter去编写接口自动化脚本,但是接口自动化测试单有脚本是不够的,我们还需要批量跑指定接口,生成接口运行报告,定位报错接口,接口定时任务,邮件通知等功能.批量跑指定接口:我们可以利用ant批量跑指定目录下的Jmeter脚本生成接口运行报告:使用Jmeter(extras目录下)自带的jmeter-results-detail-repo…
概述 接口自动化概述   众所周知,接口自动化测试有着如下特点: 低投入,高产出. 比较容易实现自动化. 和UI自动化测试相比更加稳定. 如何做好一个接口自动化测试项目呢? 我认为,一个“好的”自动化测试项目,需要从“时间”.“人力”.“收益”这三个方面出发,做好“取舍”. 不能由于被测系统发生一些变更,就导致花费了几个小时的自动化脚本无法执行.同时,我们需要看到“收益”,不能为了总想看到100%的成功,而少做或者不做校验,但是校验多了维护成本一定会增多,可能每天都需要进行大量的维护. 所以做好…
经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路. 我们在百度搜索天气查询,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接口测试用例脚本. 一,明确测试对象 针对某个功能做接口测试,首先我们需要确定实现这个功能调用的是哪个接口,这个接口的具体信息(如功能.协议.URL.请求方法.请求参数说明.响应参数说明等等)可以通过查看开发提供的接口文档获取,也可以通过抓包(在没有接口文档的情况下)获取.找到对应的接口也就是测试对象…
http://www.cnblogs.com/xf-linux-arm-java-android/p/3590770.htmlhttp://blog.csdn.net/zengraoli/article/details/19968251 http://blog.sina.com.cn/s/blog_564db6f40100be5w.html http://www.laruence.com/2009/11/18/1154.html http://www.cnblogs.com/hnrainll/a…