写在前面 上一篇我们介绍了使用 net/http 发送get请求,因为考虑到篇幅问题,把Post单独拎了出来,我们在这一篇一起从源码来了解一下Golang的Post请求. 发送Post请求 net/http发送Post请求很容易,下面的代码我们和Get请求一样,把响应的内容的信息打印出来了,细心的朋友可能会发现,在参数传递.和结果解析时用了三种不同的方式,我们将在后面进行解析. 示例代码 package main import ( "bytes" "fmt" &qu…
发送Get请求 使用Golang发送get请求很容易,我们还是使用http://httpbin.org作为服务端来进行演示. package main import ( "bytes" "fmt" "log" "net/http" "net/url" "reflect" ) func main() { resp, err := http.Get("http://httpbin.…
前言 可能看过我博客的朋友知道我主要是做的支付这一块的测试工作.而我们都知道现在比较流行的支付方式就是微信支付和支付宝支付,当然最近在使用低手续费大力推广的京东金融(已改名为京东数科)以后也可能站到第一队列,但是要在中国市场走到和财付通.蚂蚁金服一个层级就任重而道远了. 废话不多说,我们一起来看看微信支付签名的官方文档.搜索微信支付--点击支付开发文档--接口规则--安全规范. 我们会看的以下的内容: 签名生成的方法文档已经说的很清晰,下面我们一起来看看怎么使用golang来实现它,以及怎么使用…
为什么使用Golang做自动化 顺应公司的趋势学习了Golang之后,因为没有开发那么多的时间和项目来实践,怕步此前学习Java缺少练习遗忘殆尽的后尘,决定利用工作之余的时间把此前用Python的写的自动化的代码使用golang进行重构. 我一直都有总结的习惯,也喜欢用代码解决一些问题,此前这一块都是用Python来完成的,后续会逐渐转移到Golang.我相信通过挖掘一些项目内部能做的事情做练习,以后肯定能成为一个合格的gopher. 最终想实现的效果 终极目标:与开发的代码放在一起CI,作为C…
前言 Mock是一个做自动化测试永远绕不过去的话题.本文主要介绍使用标准库net/http/httptest完成HTTP请求的Mock的测试方法. 可能有的小伙伴不太了解mock在实际自动化测试过程中的意义,在我的另外一篇博客中有比较详细的描述,在本文中我们可以简单理解为它可以解决测试依赖.下面我们一起来学习它. http包的HandleFunc函数 我们在前面的文章中介绍过怎么发送各种http请求,但是没有介绍过怎么使用golang启动一个http的服务.我们首先来看看怎么使用golang建立…
前言 上一次我们一起学习了如何解析接口返回的XML数据,这一次我们一起来学习JSON的解析方法. JSON(Javascript Object Notation)是一种轻量级的数据交换语言,以文字为基础,具有自我描述性且易于让人阅读.XML是一个完整的标记语言,而JSON不是.JSON比XML更小.更快,更易解析,因此其被广泛应用于网络数据传输领域. Go语言的标准库已经非常好的支持了JSON,可以很容易的对JSON数据进行编.解码的工作.下面我们通过一些实例一起来学习. 首先我们假设我们的接口…
前言:什么是Requests ?Requests 是⽤Python语⾔编写,基于urllib,采⽤Apache2 Licensed开源协议的 HTTP 库.它⽐ urllib 更加⽅便,可以节约我们⼤量的⼯作,完全满⾜HTTP测试需求. 安装requests库 ​ cmd命令行执行pip install requests HTTP 请求方法 ​ HTTP 协议 (Hyper Text Transfer Protocol),一个基于TCP/IP通信协议来传递数据,包括html文件.图像.结果等,即…
我们在前面几篇文章中学习怎么发送数据请求,怎么处理解析接口返回的结果,接下来我们一起来学习怎么进行测试用例管理,今天我们介绍的是使用yml文件进行用例管理,所以首先我们一起来了解一下YAML和它的简单用法. YAML YAML(Yet Another Markup Language),可能大家在工作中或多或少已经接触过这个文件格式.它是一种基于Unicode用来表达资料序列的编程语言,有易阅读.易与脚本语言交互的特点.在博主所在项目接入了k8s之后,基本上所有的配置都使用的yml. 我觉得yml…
上一篇我们学习了怎么发送各种数据类型的http请求,这一篇我们来介绍怎么来解析接口返回的XML的数据. 解析接口返回数据 定义结构体 假设我们现在有一个接口返回的数据resp如下: <?xml version="1.0" encoding="utf-8"?> <ResponseWithResponseInfo> <code>00</code> <message>SUCCESS</message>…
背景 我们在前面介绍过怎么使用net/http发送json或者map数据,那么它能不能直接发送结构体数据呢?我们今天一起来学习结构体struct转map的三种方法,为后续做铺垫. struct转map 使用json模块 直接使用json.Marshal方法来强制转化struct. 参考代码: func JSONMethod(content interface{}) map[string]interface{} { var name map[string]interface{} if marsha…