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

网站侧面菜单展开怎么做搜建筑网建筑规范大全

网站侧面菜单展开怎么做,搜建筑网建筑规范大全,58同城网站建设 推广,免费建设淘客网站🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 phpunit 接口自动化测试系列 Post接口自动化测试用例 Post方式的接口是上传接口,需要对接口头部进行封装,所以没有办法在浏览器下直接调…

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 

phpunit 接口自动化测试系列

Post接口自动化测试用例

Post方式的接口是上传接口,需要对接口头部进行封装,所以没有办法在浏览器下直接调用,但是可以用Curl命令的-d参数传递接口需要的参数。当然我们还以众筹网的登录接口为例,讲解post方式接口的自动化测试用例。

(1)接口文档

.登录(POST)
URL:http://api.zhongchou.cn/user/login

参数:

identity,用户名、用户手机、用户邮箱,三者之一

password,用户密码

返回:

errno,0:表示成功,非0:表示失败

User基础数据结构

token,成功会返回32位token字符串,失败会返回空字符串

这个接口文档很清楚,就是传递用户名和密码进行登录,登录后会返回user基本数据结构和Token。

(2)Curl命令执行

分析了接口文档,我们需要在终端下执行接口,然后才能根据接口的返回值来编写对应的接口测试用例。

在终端下执行命令:

[root@n028 api]# curl -d ‘identity=1838905&password=a**0’ http://api.zhongchou.cn/user/login?v=1

其中的identity为众筹网的用户名,password为密码,V=1是因为这个接口是第一版本的。执行结果如图4.2.1所示:

在这里插入图片描述

(3)Curl返回值查看

由于post方式无法用浏览器直接调用,返回结果是编码后的json字符串,不方便我们查看结果。所以我们要借助于chrome的插件。

打开chrome浏览器->右击浏览器,选择“审查元素”->在浏览器下部选择“Console”选项卡。在打开的栏目下的“>”后输入dir().然后将刚刚终端Curl返回的结果拷贝到这个函数中,回车即可解析结果。如图4.2.2所示:

在这里插入图片描述

(4)PHP调用Post方式接口

 PHP调用Post接口和Get方式有所不同,一般用以下方式调用,而且是固定的:

public function testlogin(){$url='http://api.zhongchou.cn/user/login?v=1';$post_params=array('identity'=>'183****8905','password'=>'a0****0');$ch = curl_init();//初始化curlcurl_setopt($ch, CURLOPT_URL,$url);//抓取指定网页curl_setopt($ch, CURLOPT_HEADER, 0);//设置headercurl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上curl_setopt($ch, CURLOPT_POST, 1);//post提交方式curl_setopt($ch, CURLOPT_POSTFIELDS,$post_params);$data = curl_exec($ch);//运行curlcurl_close($ch);echo  $data;}

然后执行代码,就可以看到如图4.2.3所示的输出结果:

在这里插入图片描述

如到Get方式,这个输出结果同样是经过编码后的json字符串,我们也需要对其进行json_decode()解码一下,然后再输出结果。所以增加以下两行代码:

res=jsond​ecode(data);

print_r($res);

此时的输出结果图4.2.4所示,简单清晰了许多。

在这里插入图片描述

(5)PHP编写Post接口自动化测试用例 

现在PHP能调用post方式的接口了,可是没有添加自动判断执行结果的脚本,不算是一个真正的测试用例。接下来我们添加上对返回值的assert语句,使之成为一个完整的自动化测试用例。

完整的测试用例如下:

public function testlogin(){$url='http://api.zhongchou.cn/user/login?v=1';$post_params=array('identity'=>'183****8905','password'=>'a0******0');$ch = curl_init();//初始化curlcurl_setopt($ch, CURLOPT_URL,$url);//抓取指定网页curl_setopt($ch, CURLOPT_HEADER, 0);//设置headercurl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上curl_setopt($ch, CURLOPT_POST, 1);//post提交方式curl_setopt($ch, CURLOPT_POSTFIELDS,$post_params);$res = curl_exec($ch);//运行curlcurl_close($ch);$data=json_decode($res,true);//print_r($data);if(is_null($data)==false){if($data['errno']=='0'){$this->assertEquals('0',$data['errno']);//判断errno是否为0,此步为抛出执行通过$index =strpos($data['data']['name'],'8905');$this->assertnotEquals(-1,$index);//判断结果是否包含关键字print('接口/user/login:登录接口------------------OK'."\n");}else{$this->assertEquals('0',$data['errno']);//抛出执行失败print("接口/user/login:登录接口---------------Failure!"."\n".$res."\n");}}}

Assert判断语句和get相似,先判断返回errno,然后判断返回的name是不是我们刚刚登录的账号。当然如果返回值不是我们预期的,也要使测试用例执行失败。执行结果如图4.2.5所示,同样如果要看接口返回值 ,注销掉//print_r($data);

在这里插入图片描述

测试用例的覆盖

上面我们讲述了get和post两种方式的接口自动化测试用例的编写,通过运行我们发现还是挺简单的嘛。不过上面两种测试用例只是接口的一个正常的测试用例,而对于一个接口的测试用例覆盖是非常多的。下面我们就常用的接口测试用例覆盖方法列举一下:

(1)必需参数覆盖。对于接口的参数,接口文档一般都会说明哪些儿是必需的,哪儿是非必需的。对于必需的参数,一定要测试传参数和不传参数接口是否报错?

(2)必需的参数各种情况覆盖。传非法的字符,特殊的字符,空值,超过边界的参数是否报错?错误信息是否正确?

(3)非必需参数覆盖。一般接口对于非必需参数都不会做非正常性传值的判断,所以要测试合法的参数值 ,接口返回的内容是否正确。如果有接口文档说明对非必需参数做了非正常的验证的话,也要对其进行验证。

(4)参数的组合覆盖。有些儿参数需要相互配合着才起作用,如“offset”和“count”组合起来进行翻页,这个时候要组合起来进行测试。

(5)业务逻辑相关的覆盖。有些儿接口与业务逻辑关联密切,单独从接口角度测试,可能会遗漏掉一些儿因业务逻辑而产生的bug。所以如果和业务逻辑相关,也要考虑到业务逻辑相关的测试用例。

其实接口的测试用例差不多也就这些儿情况,也许有特殊的接口,到时候和产品,开发人员做好沟通,尽量先从接口层面保证质量。这样再从测试接口的应用层的时候,就可以少很多工作量,只注重样式和各个接口调用的配合就可以了。

总结

本章讲述了常用的Get和Post方式Curl命令调用,浏览器调用和查看接口返回值的方法,以及对应的接口自动化用例的编写方法。最后还介绍了接口测试用例的覆盖方法,通过本章的学习我们可以参照接口文档,写出这个接口的所有自动化测试用例。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。


文章转载自:

http://6TgZUxbK.sfphz.cn
http://hYE2rzzV.sfphz.cn
http://84aapel9.sfphz.cn
http://bcClXuxH.sfphz.cn
http://2f5qZFKD.sfphz.cn
http://PRARZV1O.sfphz.cn
http://Bmo2r0KV.sfphz.cn
http://ORSp9Kph.sfphz.cn
http://CrNfpEiZ.sfphz.cn
http://TwPpuXl1.sfphz.cn
http://2DPuVdfK.sfphz.cn
http://4BwXab9o.sfphz.cn
http://dYieUCMz.sfphz.cn
http://GJFPQyKb.sfphz.cn
http://ue0vqft2.sfphz.cn
http://p1bpc2wp.sfphz.cn
http://uuHUa4Bk.sfphz.cn
http://uxUDeos1.sfphz.cn
http://Bvku9eZu.sfphz.cn
http://Kd9l21zF.sfphz.cn
http://tzS6OM7Q.sfphz.cn
http://NJYmA2tK.sfphz.cn
http://WzflJBK8.sfphz.cn
http://0WCOD1a1.sfphz.cn
http://N0Qj7xGL.sfphz.cn
http://xI2fGIUe.sfphz.cn
http://V7Ex5HlC.sfphz.cn
http://mQ6VV2JE.sfphz.cn
http://6y5rWtxp.sfphz.cn
http://bzYucI7c.sfphz.cn
http://www.dtcms.com/wzjs/746057.html

相关文章:

  • 珠海网站怎样建设小程序源码是什么
  • 新乡定制网站建设公司公司做网站的优势
  • 德赞网站建设网站制作一般通过是什么意思
  • 云朵课堂网站开发怎么收费企业官网的作用
  • 寻找扬中网站建设小米品牌vi设计
  • rikka.top wordpresswordpress seo不好
  • 南宁建站公司有哪些wordpress 运行天数 小工具
  • 网站关键词优化哪家正规什么平台引流最快
  • 卓企做的网站怎么样大三亚app下载
  • 网站推广 济南html网站两边的浮窗怎么做
  • 海南茶叶网站建设nginx wordpress 主题
  • 重庆排名优化整站优化品牌网站如何做seo
  • 汕头专业的免费建站长沙网站外包
  • 环保工程东莞网站建设crm客户管理系统api
  • 企业网站 模版wordpress禁止google
  • 云一网站公司中国海洋大学站群网站建设
  • 网站首页快照更新快模板网站制作
  • 网站建设案例教程视频龙游发布紧急提示
  • 好用的h5网站哪个网站做数学题赚钱
  • php网站源码模板推广网站优化怎么做
  • 如何设置公司网站如何建设属于自己的网站
  • 公司网站要多少钱工程公司起名字大全免费
  • 国内免费设计素材网站wordpress wending
  • 做旅游网站赚钱吗中国建筑装饰网站
  • 惠州做网站广告网络域名地址
  • 专门做二手房车的网站美工设计培训
  • 大良营销网站建设平台网站是先制作后上线么
  • 网站交互设计网页设计与制作教程刘瑞新课后答案
  • 怎么样在网站做产品推广开一个做网站的工作室
  • 新网个人网站备案wordpress cpu突然