问题背景: 在测试&部署监控过程中,我们常常会遇到外部接口返回数据不靠谱的时候.最常见的场合是从某个http获取如json和xml等结构化的结果,进行解析并处理,在这时候出现以下这几种常见类型的错误: (1)整个结构不完整.直接无法解析json/xml. (2)编码错误,常见的gbk/utf8错误 (3)超长数据/非法字符. (4)数据类型不匹配.需要是数字的给了字符串,该是数组的给了字符串等,对json本身来说没问题,程序处理就会错误或者崩溃. (5)字段缺失或者为空,这个情况对json本身来…
话不多说,直接进入主题. 需求:基于Http请求接收Json格式数据,返回Json格式的数据. 整理:对接收的数据与返回数据进行统一的封装整理,方便处理接收与返回数据,并对数据进行验证,通过C#的特性对token进行验证,并通过时间戳的方式统一处理接收与返回的时间格式. 请求Json格式: { "Cmd": "login", "Token": "", "PageNo": 0, "OnePageNu…
酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)   最近手头在开发一个游戏官网,在支付模块采用神州付技术支持,神州付数据表单中要求提供服务器返回地址和页面返回地址,相信做过这类接口的朋友应该猜到 最近手头在开发一个游戏官网,在支付模块采用神州付技术支持,神州付数据表单中要求提供服务器返回地址和页面返回地址,相信做过这类接口的朋友应该猜到这两个地址的作用.小编解释下,我们在购买物品或者服务完成,通过支付工具(支付宝.财付通.神州付等等)付款成功…
前言 参数关联是接口测试和性能测试最为重要的一个步骤,很多接口的请求参数是动态的,并且需要从上一个接口的返回值里面取出来,一般只能用一次就失效了. 最常见的案例就是网站的登录案例,很多网站的登录并不仅仅只传username和psw两个参数,往往有其它的动态参数. 有时候还需要带上cookies参数,如JSESSIONID 登录参数 首先分析下目标网站[学信网:https://account.chsi.com.cn/passport/login]的登录接口请求参数. 先随便输入账号和密码,使用fi…
昨天测试接口出现有一个接口中文乱码问题,现象: 1 浏览器请求返回显示正常 2 用代码请求接口返回数据中文显示乱码 3 使用的python3,python3默认unicode编码,中文都是可以正常显示的.直接打印中文,其他接口中的中文都正常 百思不得其解,跟开发确认接口编码方式 ,也是是utf-8. 跟其他接口一样 折腾蛮久,最后的解决思路: 1   把浏览器返回的中文进行utf-8加密 2  对比步骤1的加密串 与 乱码的区别,发现两者的字节码是一样的,只是显示形式不同,一个是b'xxx',另…
mock,是python中模拟接口返回数据 1.安装 pip install mock import unittest from mock import Mock def add(a,b): pass class Testadd(unittest.TestCase): def test_add(self): #mock的变量名是要调用方法的名称,把真正想要得到的结果赋值给return_value add=Mock(return_value=7) self.assertEqual(7,add(3,…
[本文出自天外归云的博客园] 方法介绍与比对 在测试的过程中,有的需求是这样的,它需要你修改接口返回的数据,从而检查在客户端手机app内是否显示正确,这也算是一种接口容错测试,接口容错测试属于app性能(专项)测试的其中一种. 通过Fiddler我们可以有好几种方法修改返回结果: 第一种:在Fiddler底部的黑色命令行显示区域通过bpu url的形式按回车之后进行拦截,通过手机app访问指定接口,拦截到后可以选择response文件后通过拦截: 第二种:在AutoRespnder里Add Ru…
<?php /** * Created by PhpStorm. * User: thinkpad * Date: 2015/7/17 0017 * Time: 13:24 */ class Action { public static function curl_get($url){ $testurl = $url; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $testurl); //参数为1表示传输数据,为0表示直接输出显示. curl…
Mock.js 是一个模拟数据生成器,利用它,可以拦截ajax请求,直接模拟返回数据,这样前后端只要约定好数据格式,前端就不需要依赖后端的接口,可以直接使用模拟的数据了. 网上介绍mock的教程也较多,不过大多数看的比较模糊.其实使用起来非常简单,这里介绍在Vue工程中使用Mockjs,并且实现开发和生产配置化. 一.安装 cnpm install --save-dev mockjs 二.引入 为了只在开发环境使用mock,而打包到生产环境时自动不使用mock,我们可以在env中做一个配置 //…
事件:使用Jmeter做APP的搜索接口测试,请求成功了,但无论keyword是什么“内容”(这里的内容是带引号的哦),接口返回的内容都是:未匹配到搜索结果 排查问题: keyword=“世界” step1:确认接口通的 ,Response code: 200 step2:确认keyword=“世界”时,是有搜索结果的.通过APP搜索“世界”,有内容 step3:确认json格式正确,参数正确 .请求数据体是使用fiddler抓的(已经使用工具校验json格式了) step4:灵光乍现,看到路径…