这篇文章主要讲解了“如何利用python进行接口测试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用python进行接口测试”吧!第一个坑:POST 和 GET—-GET一般用于获取/查询资源信息,而POST一般用于更新资源信息|Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求。做过接口测试或者做过前端的人都知道,接口的访问方式是不一致的,所以才会使用postman来进行接口测试,因为它可以设置post和get方式。使用python模拟这俩种访问方式是重中之重。先说GET方式。GET方式就比较简单了,把接口放进浏览器地址栏,点下回车就完成了一次GET。所以就需要使用python访问URL就可以模拟一次GET 测试。如上所示就完成了一次GET请求,调用urllib2库,然后将一个字符串形式的URL传给urllib2.urlopen函数,最后使用read()方法将GET回来的数据存储起来。然后说说POST。其实在python的urllib2库中,我们刚刚所使用的urlopen函数还有其他几样不是必选的入参,因为这些入参给定了初始化的值:如上代码,urllib库有一个很智能的毛病。data不给值,访问方式就是GET,data给了值,方式就会变成POST;所以模拟POST 方式的代码如下:就像如上代码,把POST方式所需要的数据写到data参数中去,POST方式就模拟成功了。第二个坑:cookie的使用用python获取cookie所需要的库叫做cookielib。获取cookie的例子:在下一步,将获取到的cookie绑定到opener头中:现在的opener就可以用来访问任意需要登录的网站了!功能:功能实现,实现与设计一致, 接口通过性测试健壮性: 边界值,容错性性能: 并发及压测稳定性: 长期运行的稳定性安全性: SQL注入, session依赖, 数字签名, http接口的安全性常见接口种类:Http/Https接口: 通过http/https协议传送接口数据(通常按字符串/二进制传输), 如常见的网页表单, https安全性更好RESTful Api: REST表述性状态传递. 一种设计风格,基于http/https协议, 把一切接口视为资源, 接口要分版本,在统一的域名下管理, 不同的方法(get/post..)做不同的事,通常请求及响应使用json格式Web Service: SOAP简单面向对象协议, 基于http实现的一种RPC方案.接口返回一些对象,可以直接通过操作对象,实现我们需要的业务处理.使用xml格式传输数据RPC接口: RPC为远程方法调用, 有不同的实现方案,基于TCP/Http协议的都有. RPC可以想我们本地导入和调用对象一样使用. Dubbo接口也是一种RPC接口.常见接口数据类型:请求数据类型(Content-Type):application/x-www-form-urlencoded: 常规只有文本的网页表单application/json: RESTful Api常用格式, 结构清晰, 含有多层嵌套multipart/form-data: 既有文本,又有上传文件或富文本框的混合数据表单text/xml: xml格式, RPC接口常用格式响应数据类型string/html: 返回字符串或网页源码json: RESTfu免费云主机域名l Api常用响应格式, 结构清晰xml: RPC接口常用格式常见接口安全验证方式:Auth_1.0/Auth_2.0: 通用接口授权方式Session依赖: 需要登录之后才能进行接口操作Token验证: 先要使用自己的appid/appsecret通过获取token接口验证身份获取一个token(令牌,有一定有效期), 然后带着token访问接口数字签名: 将原本的参数按一定规则进行组合,配合时间戳或appsecret, 通过加密算法生成一个签名sign, 携带签名进行接口请求常见接口请求方法:GET: 获取资源POST: 修改资源PUT: 上传资源DELETE: 删除资源HEAD: 只请求页面首部PATCH: 补丁OPTIONS: 运行客户端查看服务器性能……常见状态码(RESTful规范):200系: 成功200 OK – [GET]:获取资源成功201 CREATED – [POST/PUT/PATCH]:创建/修改成功202 Accepted – [*]:任务接受204 NO CONTENT – [DELETE]:删除成功300系: 重定向301 Moved Permanently: 永久重定向302 Found: 临时重定向400: 资源错误400 INVALID REQUEST – [POST/PUT/PATCH]:用户请求错误401 Unauthorized – [*]:没有权限(鉴权失败, 接口层)403 Forbidden – [*] 资源禁止访问(服务器层,没有访问权限)404 NOT FOUND – [*]:资源不存在405 Method Not Allowd: 访问的方法不允许, 如用POST访问只支持GET请求的接口406 Not Acceptable – [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)410 Gone -[GET]:资源被永久删除422 Unprocesable entity – [POST/PUT/PATCH] 当创建对象时,发生验证错误500系: 服务器内部错误(接口崩溃或有Bug)500 INTERNAL SERVER ERROR – [*]:服务器发生错误接口业务类型:返回数据型接口: 只从数据库读取数据业务操作型接口: 需要写数据库(接口测试需要要涉及参数化或环境清理)获取接口文档:WikiWord文档Postman导出抽象接口定义接口管理平台功能分析: 是否能满足业务(是否缺少某个前端需要的参数), 是否能满足所有业务场景(是否有漏开发接口, 比如只开发了单品接口,没开发套餐接口)设计分析: 是否有不规范字段(如,nickname, passwd);不规范格式(如sex,用男,女而不是1,2);是否有易混淆字段(如amount和total);是否有单词拼错;是否有和数据库字段对应但名称不一样的(易错)接口分析: 协议类型(http要考虑安全);请求方法(是否规范);请求编码格式(表单/Json/xml, 很多接口文档不声明,导致测试调试不通);接口授权方式;接口业务类型(关系到是否需要做参数化或环境清理); 返回值类型及结构(关系到怎么断言)接口依赖: 需要什么环境准备和业务场景, 依赖那些接口, 有那些动态数据, 预备环境怎么保障参数分析: 各个参数的参数类型,组成规则,是否允许不传,是否可以为空, 是否允许多传参业务分析: 如price字段必须和数据库中的商品的price字段一致,才能校验通过非功能性: 接口的技术实现方案是否合理, 能否满足高并发的性能要求, 边界值/极限值的处理是否合适, 是否前后端都有数据格式校验等(如精确度为秒级的订单号生成器,在高并发下会导致生成同一订单号的问题)其他: 如反爬,对headers的一些限制和校验, ip等限制Excel/TestLink/禅道单接口用例: 正常数据/边界数据/异常数据(健壮性)/并发(一致性)/性能/安全性(抓包截取伪造/SQL注入/跨域请求)场景用例: 列出常见的用户场景, 用接口进行覆盖, 业务场景压测(寻找某个环节的性能瓶颈)Postman: 功能调试Jmeter: 性能感谢各位的阅读,以上就是“如何利用python进行接口测试”的内容了,经过本文的学习后,相信大家对如何利用python进行接口测试这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!
本文小编为大家详细介绍“Golang如何实现HTTP编程请求和响应”,内容详细,步骤清晰,细节处理妥免费云主机域名当,希望这篇“Golang如何实现HTTP编程请求和响应”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。请求:HTTP …
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。