为您找到搜索结果:5879个
检查数据接口返回数据合法性
问题背景: 在测试&部署监控过程中,我们常常会遇到外部接口返回数据不靠谱的时候。最常见的场合是从某个http获取如json和xml等结构化的结果,进行解析并处理,在这时候出现以下这几种常见类型的错误:(1)整个结构不完整。直接无法解析json/xml。 (2)编码错误,常见的gbk/utf8错误 (3)超长数据/非法字符。 (4)数据类型不匹配。需要是数字的给了字符串,该是数组的给了字符串等,对json本身来说没问题,程序处理就会错误或者崩溃。(5)字段缺失或者为空,这个情况对json本身来说也是没问题的,处理进程固定要去取这里的字段就会出问题,或者进程本身没问题,但实际展现出问题。例如,json描述一个商品最近30天的售价,提供一个数组里有30个数据来画点,json里这个数组为空,从数据格式上来说没问题,但实际画点时展现即为空。 截图是来自一份合作方的数据,箭头指向的是上证指数曲线的点,如果点数据完全缺失(为空)则画曲线的界面会显示为空。在json结构上则仍然验证为合法。 解决问题的现状: 对上述问题,我们有一...
接口数据一致性校验工具
背景介绍: 搜狗手机输入法8.6版本近期发布了一个创新性的功能:Quickshare,用户通过输入法工具条的Quickshare按钮,可以进行百科、地名、音乐等等类别数据的搜索,搜索结果会直接以卡片形式在输入法中展示。Quickshare功能后台接入了不同数据源的接口,例如搜索地名时可以查询到相应地名的结果,这是由后端的搜狗地图服务器提供的数据源。 问题介绍: 但是该功能在后期测试验证时,出现了数据不一致的问题。例如:在搜狗地图的客户端程序中搜索"凯德Mall",可以查询到对应的结果;但是在Quickshare中搜索"凯德Mall"无结果。虽然接口都是搜狗地图服务器提供的,但是两个具体接口的数据内容不完全一致。为了进行数据覆盖度的评估验证,测试组完成了一套基于python的接口数据覆盖度自动化工具。 工具功能介绍该工具的主要功能是:定时地对线上服务器的接口进行自动化监控...
白盒测试——私有接口测试
起因:白盒测试过程中,经常会遇到被测接口是私有接口,不能通过直接访问接口进行测试,那么对于这样的接口我们怎么进行路径覆盖呢?想到的办法:1.通过访问上层接口构造相应数据来测试私有接口;2.通过走查私有接口,设计用例通过黑盒的方式覆盖代码逻辑;3.在私有接口中期望关注的位置上设置断点,构造相应数据,观察运行过程中断点位置的数据变化是否符合预期;4.将私有成员定义为公有成员;5.声明测试类为被测试类的友元类。几种测试方法的对比:Ø前三种办法覆盖度不高,复用率较低,但单位时间获得的测试覆盖度较大;Ø第四种方法通过#defineprivatepublic的方式可以在外部访问类的私有变量,但这时所有的外部类都可访问这个类的私有成员,较危险;Ø第五种方法通过在A类中声明B类为其友元类,这样B类中就可以访问A类中的所有私有成员和保护成员了,其他类依然没有权限访问A类的私有成员和保护成员,较为安全。怎么使用友元类进行测试呢? 第一步:在被测函数中声明测试函数为其友元类; 第二步:新建头文件B.h,引用被测试类的头文件,并声明该类,在我们自己...
服务端的性能测试(一)
说起性能测试,许多移动端测试的人员可能会比较陌生,性能测试不是涉及到APP的启动时间、流量、大小、耗电量等的相关指标么。本文所讲的是一个与APP的性能测试完全不同的领域:服务端的性能测试。我们会针对服务端有一些不同的指标。 那么究竟什么是服务端的性能测试? 我们从最基本的功能测试说起吧。比如,我们要测试一个接口的返回,那么我们测试的时候,会有一个输入的参数,服务端接收到了后会返回一些数据,然后客户端会利用这些数据展示一些相应的结果,如果符合最开始的预期则功能正确。 那么,我们如何对该接口进行性能测试呢? 我们会模拟多个人同时进行访问这个接口,在保证返回数据正确的前提下,去监管服务端的程序下的各项性能指标和该服务器处理这些请求的时候服务器的硬件使用情况。 好吧,这个比喻比较粗犷,但是涵盖了性能测试的基本注意点: 1.功能首先要保证接口处理数据的正确性&...
使用loadrunner进行压力测试遇到的问题总结
本人整理了一个LR使用过程中遇到的各种问题的总结文档,有需要可以加QQ群169974486下载。一、无法生成虚拟用户,运行报错:CCIcompilationerror-vuser_init.c问题出现情景是:loadrunner当天可以正常运行,保存好后,脚本和参数化也保持一致,第二天再次打开不能使用。在controller中,脚本运行,提示错误:LR8.1Error:CCIcompilationerror-vuser_init.c 直接在loadrunnergenerator打开之前保存的脚本,点击运行无法执行,在回放日志栏提示:vuser_init.c:Nosuchfileordirectory 分析其原因是,缺少文件 解决办法:拷贝一个init.c文件放在测试脚本目录下或者重建一个文件;二、Error:Failedtosenddatabychannels-postmessagefailed寻找解决办法,多数测试人员给出解答如下:出现这个问题,目前判断是因为lr和测试机环境或者测试服务的兼容性出现了问题,而且一般的这个问题只是在测试大数据访问的时候才会...
服务端的性能测试(二)
通过上一篇的讲解,我们已经了解了一些性能测试的指标了,也知道性能测试的主要手段是通过发生出一些模拟真实业务的请求来造成压力对被测系统进行不停的加压,在这同时监控被测服务器的各项性能指标,分析被测服务器在不同压力的测试下的表现,找出其可以突破的性能瓶颈。 那么,如何对系统进行性能测试,又如何对服务器的各种指标数据进行监控呢?这里,就不得不提到性能测试工具了。 在这之前,我们可以尝试着先试想下在没有性能测试工具的前提下,如何对一个系统进行一次压力测试 假设现在我们要对一个接口进行一次性能测试,模拟在15个用户在线使用这个接口返回的数据是否可以在一个可接受的时间内返回正确的数据。 理所当然的,我们可以想到测试的必要条件有如下几点:15个线程同时并发运行,产生访问压力1个线程协调程序,对15个线程的协调控制,实现并发操作1个数据记...
H5前端性能测试总结
测试关注指标Http请求个数同一个域名不同浏览器内核、不同版本浏览器,大部分并发请求数是6个;优化方案:a.雪碧图:即CSSSprite,也称CSS精灵,是一种CSS图像合并技术,该方法是将小图标和背景图像合并到一张图片上,然后利用CSS的背景定位来显示需要显示的图片部分。b.图片地图:是一种小图合并大图的范式,和雪碧图相似,区别仅在实现原理上有不同,雪碧图仅仅是通过CSS的方式来呈现图片的某个局部,而图片地图是从html代码的方式来控制显示区域。c.JS&CSS合并:将多个小的js、CSS合并成一个大的js、CSS文件,间接达到减少http请求的目的。组件是否压缩压缩方法:在http请求中设置所接受到压缩方式,在Server端对Response资源进行压缩再传给浏览器。一般使用GZIP设置content-Encoding字段压缩对象:图片音乐不需要再压缩;Js,CSS通过去掉空格和回车来压缩,再经过GZIP压缩;图片格式和大小是否合适图片格式:JPG性价比最高;图片尺寸:常用规格为480×800、600×1024、720×1280,800&...
测试实施方法论
01前言也是以前做质量管理时整理的表。虽然最后因为各种各样的原因没有延续下去,不过最初的想法还是好的。这个表当初的目的也是希望提高项目管理成熟度,希望项目里的每个人在做事情时有一个更清晰的指导。有一次一个客户看到这张表,很是惊讶,佩服我们做事情的专业这个表,对于测试经理培养测试新手还是有一定帮助的。 02图片简介有一些工作,后面插入了文档模板,但不知道为什么经常会出错,导致文档模板打不开。对培养测试新手来说,讲一讲标准的项目生命周期还是很有帮助的。正如书法家练习草书之前会先练楷书一样,有了一些标准项目实施的经验,再遇到各种各样的实际情况,就会更加游刃有余了。看一下sheet,我分了几个阶段,这个是大同小异的。每个sheet中具体的工作内容,当时整理的时候限于水平,还有很多不成熟的地方。大家可以根据自己的实际情况去完善、补充。 ...
自动化实施方案
自动化测试开展的必要性(自动化测试要解决的问题,自动化测试能做哪些工作?预期收益)自动化测试要哪些投入,人、时间和资源。如何分工?自动化测试开展的里程碑,输出物自动化测试要如何跟我们现有流程相结合从哪些方面避免自动化测试工作的失败?需要避免的陷阱自动化的测试目标,测试的用途是什么?怎样帮助发现程序错误?发现什么程序错误?测试需要理解产品的用户领域吗? 迅速监测出新版本中的不稳定变更尽可能迅速暴露回归程序错误快速报告问题,因为这会使程序错误修改更容易快速修改会使代码稳定,使代码稳定会节省时间(不会有多人在相同程序错误上浪费时间),并促进通过重新分析或者其他工作改进代码结构,并解决不稳定代码问题。如果代码基础大体是稳定的,并有很强的自动化测试包,则程序员可以尝试以较低的风险做更大的变更。项目团队还可以通过调整产品的范围和发布时间,迅速抓住市场机会。以下是加速开发的两个例子:自动化冒烟测试:在有限的时间内,广泛的检验产品的功能。如果关键功能不能正常运行,或关键程序错误还没有被清除,测试小组就不必浪费时间安装或测试该版本了。解决这些问题对程序员来说也是同样紧急的事情。自动化单元测试:...
一个比较实用的测试方法
前几天有人在群里问,“正交测试法”在工作中用不用的到。借此说一下我的看法。正文在测试工作中,多数系统都需要设计我称之为“竞争条件测试”的用例。何为“竞争条件测试”,即多个进程或线程操作统一资源,比如两个用户,一个在删除一条订单,另一个同时在编辑该订单。我们需要确认这种情况下,系统是否进行了正确的处理。我通常会设计一些正交表格来分析这种情况,以保证没有遗漏。比如下图: 还有这种:用黑盒测试法怎么进行测试呢?比如两个用户同时操作一个订单的情况。具体做法是开两个浏览器,一个打开订单修改页面,这时在另一个浏览器将订单删除;第一个浏览器在不刷新页面的情况下,进行保存。 有些情况下,处理多线程争抢同一资源会利用下面提到的锁机制(当然也会有其他处理方式)。 锁业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个cut-off时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时,数据再发生变化。此时,我们就需要通过一些机制来保证这...
用soapUI测试xml格式的HTTP接口
有些HTTP接口是直接传递parameter的,有些HTTP请求是将parameter转换为xml串进行传递的。现在要分享的就是如何用soapUI实现xml串的HTTP接口测试。 soapUI 1新建soapUI工程:右击左侧导航面板中的工作空间节点“Project”,选择“NewsoapUIProject”,输入工程名称,点击OK2新建TestSuite:右击工程名,选择“NewTestsuite” 新建TestCase 添加数据源:DataSource 添加HTTP请求:HTTPTestRequest 添加循环:DataSourceLoop 添加数据沉淀:DataSink 添加数据源数据 .添加HTTP请求数据:此处最关键:将xml串设置为一个字符串写在一个参数para里,并将xml串里对应的信息参数化,最后勾选传输请求串。 传输xml串里的信息内容 Loop:数据源和HTTP请求关联&nb...
APP接口自动化测试JAVA+TestNG(三)之HTTP接口测试实例
转载自:http://www.cnblogs.com/findyou/p/5388853.html说明,本文为学习参考,将于一段时间后删除。前言 前两篇普及相关基础知识后,本篇主要对举例对国家气象局接口自动化测试进行讲解(Get请求及结果断言),以达到自动化测试入门目的,除了前两篇的一些了解外,需要有一定的JAVA知识(HTTP相关)。 目录3.1HTTP接口(GET)测试实例3.1.1待测接口说明3.1.2新建JAVA工程1.工程目录说明2.Common.java源码3.getCityWeathe.java源码4.URLConnection.java源码3.1.3编写测试用例1.测试用例2.简化后的用例3.1.4执行测试用例 以下实例均为本次总结再次编写,,如转载还请保留出处与作者姓名Findyou,谢谢! 例:北京市天气 接口的址:http://www.weather.com.cn/data/cityinfo/101010100.html请求方式:GET请求结果:{ &nbs...
LR 测试http协议xml格式数据接口
Action(){lr_start_transaction("T1");web_custom_request("xxxxHTTPRequest","URL=http://xxxx","Method=POST","Resource=0","RecContentType=text/xml","Referer=","Mode=HTML","EncType=text/xml;charset=utf-8","Body=<?xmlversion="1.0"encoding="utf-8"?>""<feed>""<token>1999EB84FC68842398B1B4268699DC4D</token>""<version>1.0.1,10,u12618</version>""</feed>",LAST);lr_end_transaction("T1",LR_AUTO);return0;}LR测试XML格式的数据时,如何手写脚本是个问题,遇到该类问题的时候可以参考上面。...
接口测试文章整理
用soapUI测试xml格式的HTTP接口APP接口自动化测试JAVA+TestNG(三)之HTTP接口测试实例接口测试总结 ...