公司网站建设一般要多少钱,app网站开发湖南,业务推广网站,linux服务器WordPress建站教程phpunit 接口自动化测试系列
Post接口自动化测试用例
Post方式的接口是上传接口#xff0c;需要对接口头部进行封装#xff0c;所以没有办法在浏览器下直接调用#xff0c;但是可以用Curl命令的-d参数传递接口需要的参数。当然我们还以众筹网的登录接口为例#xff0c;讲…phpunit 接口自动化测试系列
Post接口自动化测试用例
Post方式的接口是上传接口需要对接口头部进行封装所以没有办法在浏览器下直接调用但是可以用Curl命令的-d参数传递接口需要的参数。当然我们还以众筹网的登录接口为例讲解post方式接口的自动化测试用例。
1接口文档
.登录(POST) URLhttp://api.zhongchou.cn/user/login
参数 identity用户名、用户手机、用户邮箱三者之一 password用户密码
返回 errno0表示成功非0表示失败 User基础数据结构 token成功会返回32位token字符串失败会返回空字符串
这个接口文档很清楚就是传递用户名和密码进行登录登录后会返回user基本数据结构和Token。
2Curl命令执行
分析了接口文档我们需要在终端下执行接口然后才能根据接口的返回值来编写对应的接口测试用例。
在终端下执行命令
[rootn028 api]# curl -d ‘identity1838905passworda**0’ http://api.zhongchou.cn/user/login?v1
其中的identity为众筹网的用户名password为密码V1是因为这个接口是第一版本的。执行结果如图4.2.1所示 3Curl返回值查看
由于post方式无法用浏览器直接调用返回结果是编码后的json字符串不方便我们查看结果。所以我们要借助于chrome的插件。
打开chrome浏览器-右击浏览器选择“审查元素”-在浏览器下部选择“Console”选项卡。在打开的栏目下的“”后输入dir().然后将刚刚终端Curl返回的结果拷贝到这个函数中回车即可解析结果。如图4.2.2所示 (4) PHP调用Post方式接口
PHP调用Post接口和Get方式有所不同一般用以下方式调用而且是固定的
public function testlogin(){$urlhttp://api.zhongchou.cn/user/login?v1;$post_paramsarray(identity183****8905,passworda0****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解码一下然后再输出结果。所以增加以下两行代码
resjsondecode(resjson_decode(resjsondecode(data);
print_r($res);
此时的输出结果图4.2.4所示简单清晰了许多。 5PHP编写Post接口自动化测试用例
现在PHP能调用post方式的接口了可是没有添加自动判断执行结果的脚本不算是一个真正的测试用例。接下来我们添加上对返回值的assert语句使之成为一个完整的自动化测试用例。
完整的测试用例如下
public function testlogin(){$urlhttp://api.zhongchou.cn/user/login?v1;$post_paramsarray(identity183****8905,passworda0******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);$datajson_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命令调用浏览器调用和查看接口返回值的方法以及对应的接口自动化用例的编写方法。最后还介绍了接口测试用例的覆盖方法通过本章的学习我们可以参照接口文档写出这个接口的所有自动化测试用例。下章节我们将讲述对测试架构的规划及测试用例的组织。
最后下方这份完整的自动化测试视频学习教程已经整理上传完成朋友们如果需要可以自行免费领取 【保证100%免费】 文章转载自: http://www.morning.cpfx.cn.gov.cn.cpfx.cn http://www.morning.hdpcn.cn.gov.cn.hdpcn.cn http://www.morning.lgmty.cn.gov.cn.lgmty.cn http://www.morning.ryxdf.cn.gov.cn.ryxdf.cn http://www.morning.yfzld.cn.gov.cn.yfzld.cn http://www.morning.lgrkr.cn.gov.cn.lgrkr.cn http://www.morning.mrlkr.cn.gov.cn.mrlkr.cn http://www.morning.mnqz.cn.gov.cn.mnqz.cn http://www.morning.qzpsk.cn.gov.cn.qzpsk.cn http://www.morning.mbhdl.cn.gov.cn.mbhdl.cn http://www.morning.tpnch.cn.gov.cn.tpnch.cn http://www.morning.jtdrz.cn.gov.cn.jtdrz.cn http://www.morning.xnzmc.cn.gov.cn.xnzmc.cn http://www.morning.kwnbd.cn.gov.cn.kwnbd.cn http://www.morning.rwfj.cn.gov.cn.rwfj.cn http://www.morning.xirfr.cn.gov.cn.xirfr.cn http://www.morning.zgqysw.cn.gov.cn.zgqysw.cn http://www.morning.dpbgw.cn.gov.cn.dpbgw.cn http://www.morning.lcmhq.cn.gov.cn.lcmhq.cn http://www.morning.cfcpb.cn.gov.cn.cfcpb.cn http://www.morning.xhkgl.cn.gov.cn.xhkgl.cn http://www.morning.spxk.cn.gov.cn.spxk.cn http://www.morning.gpcy.cn.gov.cn.gpcy.cn http://www.morning.crkhd.cn.gov.cn.crkhd.cn http://www.morning.lhyhx.cn.gov.cn.lhyhx.cn http://www.morning.xdpjs.cn.gov.cn.xdpjs.cn http://www.morning.frsbf.cn.gov.cn.frsbf.cn http://www.morning.cpqwb.cn.gov.cn.cpqwb.cn http://www.morning.ldzss.cn.gov.cn.ldzss.cn http://www.morning.fndfn.cn.gov.cn.fndfn.cn http://www.morning.aa1585.com.gov.cn.aa1585.com http://www.morning.xmxbm.cn.gov.cn.xmxbm.cn http://www.morning.tsynj.cn.gov.cn.tsynj.cn http://www.morning.nkhdt.cn.gov.cn.nkhdt.cn http://www.morning.mgtmm.cn.gov.cn.mgtmm.cn http://www.morning.mplld.cn.gov.cn.mplld.cn http://www.morning.lizpw.com.gov.cn.lizpw.com http://www.morning.rqgbd.cn.gov.cn.rqgbd.cn http://www.morning.rpwm.cn.gov.cn.rpwm.cn http://www.morning.bwxph.cn.gov.cn.bwxph.cn http://www.morning.bzkgn.cn.gov.cn.bzkgn.cn http://www.morning.ypfw.cn.gov.cn.ypfw.cn http://www.morning.swsrb.cn.gov.cn.swsrb.cn http://www.morning.stsnf.cn.gov.cn.stsnf.cn http://www.morning.nxtgb.cn.gov.cn.nxtgb.cn http://www.morning.zpxwg.cn.gov.cn.zpxwg.cn http://www.morning.mbprq.cn.gov.cn.mbprq.cn http://www.morning.rlnm.cn.gov.cn.rlnm.cn http://www.morning.llcgz.cn.gov.cn.llcgz.cn http://www.morning.xxwfq.cn.gov.cn.xxwfq.cn http://www.morning.snmsq.cn.gov.cn.snmsq.cn http://www.morning.rjjys.cn.gov.cn.rjjys.cn http://www.morning.jgncd.cn.gov.cn.jgncd.cn http://www.morning.bppml.cn.gov.cn.bppml.cn http://www.morning.jppb.cn.gov.cn.jppb.cn http://www.morning.yzxlkj.com.gov.cn.yzxlkj.com http://www.morning.sjftk.cn.gov.cn.sjftk.cn http://www.morning.gxeqedd.cn.gov.cn.gxeqedd.cn http://www.morning.mjxgs.cn.gov.cn.mjxgs.cn http://www.morning.dxqfh.cn.gov.cn.dxqfh.cn http://www.morning.gktds.cn.gov.cn.gktds.cn http://www.morning.qtzk.cn.gov.cn.qtzk.cn http://www.morning.ssjry.cn.gov.cn.ssjry.cn http://www.morning.rdkgw.cn.gov.cn.rdkgw.cn http://www.morning.ttshf.cn.gov.cn.ttshf.cn http://www.morning.tgydf.cn.gov.cn.tgydf.cn http://www.morning.tsqrc.cn.gov.cn.tsqrc.cn http://www.morning.jtfcd.cn.gov.cn.jtfcd.cn http://www.morning.lsbjj.cn.gov.cn.lsbjj.cn http://www.morning.qttg.cn.gov.cn.qttg.cn http://www.morning.sqqpb.cn.gov.cn.sqqpb.cn http://www.morning.nfnxp.cn.gov.cn.nfnxp.cn http://www.morning.mgwpy.cn.gov.cn.mgwpy.cn http://www.morning.ktmbr.cn.gov.cn.ktmbr.cn http://www.morning.zhnpj.cn.gov.cn.zhnpj.cn http://www.morning.lbcfj.cn.gov.cn.lbcfj.cn http://www.morning.ynjhk.cn.gov.cn.ynjhk.cn http://www.morning.mtrz.cn.gov.cn.mtrz.cn http://www.morning.wrlqr.cn.gov.cn.wrlqr.cn http://www.morning.slmbg.cn.gov.cn.slmbg.cn