当前位置: 首页 > news >正文

备案用什么网站名称好/视频号广告推广

备案用什么网站名称好,视频号广告推广,java做简易网站,django 开放api 做网站我们在前面几篇文章中学习怎么发送数据请求,怎么处理解析接口返回的结果,接下来我们一起来学习怎么进行测试用例管理,今天我们介绍的是使用yml文件进行用例管理,所以首先我们一起来了解一下YAML和它的简单用法。 YAML YAML&#x…

我们在前面几篇文章中学习怎么发送数据请求,怎么处理解析接口返回的结果,接下来我们一起来学习怎么进行测试用例管理,今天我们介绍的是使用yml文件进行用例管理,所以首先我们一起来了解一下YAML和它的简单用法。

YAML

YAML(Yet Another Markup Language),可能大家在工作中或多或少已经接触过这个文件格式。它是一种基于Unicode用来表达资料序列的编程语言,有易阅读、易与脚本语言交互的特点。在博主所在项目接入了k8s之后,基本上所有的配置都使用的yml。

我觉得yml相比较于json文件格式最大的优势是支持注释,而json数据定义是不支持注释的,而且编写格式上也较yml严格。下面我们一起来了解一下yml的语法。

基本语法

1、yml文件以缩进代表层级关系
2、缩进不允许使用tab只能使用空格
3、空格的个数不重要,只要相同层级的元素左对齐即可
4、大小写敏感
5、数据格式为,名称:(空格)值

对象:键值对的集合(key:value)

>  字符串不用使用双引号或单引号圈起来
>   双引号圈住时不会转义字符串中的特殊字符
>  单引号圈住时会转义字符串中的特殊字符

数组:一组按顺序排列的值

>  数组名:
>             -元素1
>             -元素2
>  行内写法:
>         数组名:[元素1,元素2,元素3]

字面量:单个的、不可再分的值(数字、字符串、布尔值)

yml 格式的测试用例

定义yml文件

下面我们以登陆为例来编写测试用例,将下面这些信息保存到testCase.yml中,我们的策四用力就完成了:

Testsuit: 登录
description: 用户中心登录测试
commonparam: username: namepasswd: pwd
TestCases:- url: /api/user/logindetail: 正常登陆method: Getdata:  username: namepasswd: pwdcheck: - pr- userId-url: /api/user/logindetail: 密码错误method: postdata:username: namepasswd: pwdcheck:- 密码错误-url: /api/user/logindetail: 必填参数未填,不填密码method: postdata:username: namecheck:- 必填参数未填-url: /api/user/logindetail: 密码错误method: postdata:username: namepasswd: pwdcheck:- 密码错误-url: /api/user/logindetail: 密码错误method: postdata:username: namepasswd: pwdcheck:- 密码错误

接下来我们一起来学习怎么读取上面定义的用例信息。

创建结构体

通过观察上面的yml文件结合前面学习的yml的基础语法我们可以很轻松的知道,TestCases的具体数据是一个个的数组,发送的数据也是一个个的数组,所以我们可以定义下面的结构体来与之对应:

// TestSuit 测试用例结构体
type TestSuit struct {testsuit    stringdescription stringTestCases   []struct {URL    stringDetail stringMethod stringCheck  []stringData   struct {Username string `json:"username"`Passwd   string `json:"passwd"`}}

读取yml文件中的用例数据

我们本次用来解析yml的是一个第三方库,获取方法:go get github.com/ghodss/yaml,先上代码:

func main() {// 读取数据并解析到json中data, _ := ioutil.ReadFile("testCase.yml")t := TestSuit{}err := yaml.Unmarshal(data, &t)if err != nil {fmt.Println(err.Error())}j, _ := json.Marshal(t.TestCases)fmt.Println(string(j))// 遍历yml文件中定义的test case信息for i := 0; i < len(t.TestCases); i++ {Path := t.TestCases[i].URLMethod := t.TestCases[i].MethodParam := t.TestCases[i].DataCheckData := t.TestCases[i].Checkj, _ := json.Marshal(Param)fmt.Println("==================我是华丽的分割线==================")fmt.Println("请求参数:", string(j))fmt.Println("请求路径:", Path)upperMethod := strings.ToUpper(Method)// 检验请求方式是否合法fmt.Println(upperMethod)fmt.Println(CheckMethod(upperMethod))fmt.Println("校验数据:", CheckData)// 根据不同的请求方式选择不同的请求URLif upperMethod == "POST" {_, body, _ := gorequest.New().Post(fmt.Sprintf("http://httpbin.org%s", Path)).Send(fmt.Sprintf("%s", string(j))).Set("Content-Type", "application/json").End()fmt.Println(body)} else if upperMethod == "GET" {fmt.Println(fmt.Sprintf("http://%s/%s", BaseURI, Path))_, body, _ := gorequest.New().Get(fmt.Sprintf("http://%s%s", BaseURI, Path)).Send(fmt.Sprintf("%s", string(j))).Set("Content-Type", "application/json").End()fmt.Println(body)}}
}// CheckMethod 校验请求的方法是否正确
func CheckMethod(method string) bool {upperMethod := strings.ToUpper(method)if upperMethod == "POST" || upperMethod == "GET" {return true}return false
}

代码中注视已经给的比较清晰,这一次又是使用的http://httpbin.org进行调试, 细心的小伙伴可能注意到了最后的那个函数,对请求的方式进行了校验,其他的诸如路径的合法性等都是可以拓展进行校验的。接下来我们一起来测试一下上面的代码是不是真的能获取到用例信息并正确发送请求。

调试运行

运行的的结果:
1172048-20181004113347613-1750240768.png

需要说明的是因为我们访问的路径/api/user/loginhttp://httpbin.org中都没有监听,所以接口返回的404,其实请求也是成功的,但是我们看不到具体的请求数据和URL了,所以我们修改一下yml文件中的path为 http://httpbin.org已经监听的/post来看看结果。

修改后的数据为:
1172048-20181006105645023-1961537877.png

测试:

1172048-20181004114934137-1171997773.png

可以看到我们请求的参数/路径/IP等等信息都和我们测试用例中填充的内容一致。至此,我们的测试用例及测试就完成了

总结

  • YAML
  • 解析yml文件中的信息
  • 发送yml格式的数据

转载于:https://www.cnblogs.com/Detector/p/9738672.html

http://www.lbrq.cn/news/777115.html

相关文章:

  • 为客户网站做产品描述/农产品营销策划方案
  • ui在线设计网站/网站关键词优化wang
  • 怎样建立营销网站/营销策划主要做些什么
  • 济南手机网站定制价格/友情链接是什么
  • 建个网站做产品怎样/英文关键词seo
  • 做电商有那个网站/大金seo
  • 域名注册过程/seo代码优化步骤
  • 优秀高端网站建设企业/个人发布信息的免费平台
  • wordpress制作网站模板/百度极速版app下载
  • 网红自助下单网站/淘宝搜索关键词排名查询工具
  • 办网站用什么证件/优秀的网络搜索引擎营销案例
  • 宁波网站建设网络推广/传统营销和网络营销的区别
  • 中原区网站建设/网络营销网站推广方法
  • 东莞做营销型网站的/长沙seo推广
  • 张掖网站制作/百度搜索排名与点击有关吗
  • 网站 意义/长安seo排名优化培训
  • wordpress翻译公司网站/下载百度极速版
  • 做网站如何选择关键词/网站优化seo怎么做
  • 做设计找图有哪些网站有哪些问题/十大搜索引擎排名
  • 滁州市建设银行网站/廊坊seo快速排名
  • 利用社交网站做淘宝客/全网推广平台有哪些
  • 商丘企业网站建设服务/山东最新消息今天
  • 优秀网站建设出售/搜索引擎seo如何优化
  • 亚马逊欧洲站/网页设计可以自学吗
  • 成都建设官方网站/游戏优化大师官网
  • 官网的网站设计公司/广州网站营销推广
  • 北京住房和城乡建设委员会网站电话/bing搜索
  • 导购类网站怎么做/济南seo网站排名优化工具
  • 怎么用 java做网站/互联网品牌的快速推广
  • 郑州做网站的公司/百度教育官网登录入口
  • 最终章【1】Epson机器人篇
  • 前端组件库双雄对决:Bootstrap vs Element UI 完全指南
  • MATLAB绘制水的蒸汽压曲线(Antoine方程)
  • Linux环境下实现简单TCP通信(c)
  • 40.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--集成网关--初始化网关
  • Redis 数据类型和单线程模型补充