<menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
  • <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
              1. <dl id="gc5xj"></dl>

                <dl id="gc5xj"></dl>

                <li id="gc5xj"><ins id="gc5xj"></ins></li>

                1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                    <dl id="gc5xj"></dl>

                        <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                        <dl id="gc5xj"></dl>

                          接口测试入门篇

                          发表于£º2019-3-26 10:24  作者£º秦无殇   ?#19995;´£?#21338;客园

                          字体£º | 上一篇 | 下一篇 |我要投稿 | 推荐标签£º 软件测试技术 接口测试

                          ¡¡¡¡1¡¢什么是接口£¿
                          ¡¡¡¡接口是连接前台和后台的桥梁£¬前台通过接口调用后端已完成的功能£¬而无需关注内部的实现细节¡£借助于接口£¬可以实现前后台分离£¬各自完成开发工作后£¬进行联调£¬提高工作效率¡£
                          ¡¡¡¡2¡¢接口的分类£¿
                          ¡¡¡¡GET£¬POST£¬PUT,DELETE
                          ¡¡¡¡3¡¢接口的区别£¿
                          ¡¡¡¡GET与POST的区别
                          ¡¡¡¡答£ºGET的请求数据是在URL上£¬POST的请求数据是通过FROM表单¡£安全性£ºPOST接口的比GET接口更安全¡£
                          ¡¡¡¡PUT和DELETE的区别
                          ¡¡¡¡答£ºPUT用于更新和创建?#35797;´£»DELETE用于删除?#35797;µA?/div>
                          ¡¡¡¡4¡¢接口测试流程£¿
                          ¡¡¡¡答£º需求沟通¡·?#20998;?#23450;测试方案¡·¡·设计测试用例¡·¡·准备测试环境¡·?#20998;?#34892;测试用例¡·¡·缺陷跟踪与回归测试¡·¡·上线
                          ¡¡¡¡5¡¢为什么要设计测试用例£¿
                          ¡¡¡¡答£º理清测试思路£¬避免漏测£»
                          ¡¡¡¡提高测试效率£»
                          ¡¡¡¡跟进测试进度£»
                          ¡¡¡¡告诉领导这件事情你做过£¨?#37096;?#20197;避免出了问题后扯皮£©£»
                          ¡¡¡¡6¡¢如何设计接口测试用例£¿
                          ¡¡¡¡答£º主要从功能£¬业务逻辑£¬安全£¬异常£¬接口文档等方面入手¡£
                          ¡¡¡¡6.1¡¢功能
                          ¡¡¡¡接口的功能是否实现£¬比如调用创建集群接口能正常创建集群¡£
                          ¡¡¡¡接口的实现是否与接口文档一致¡£比如接口的参数与文档中描述的完全一致¡£
                          ¡¡¡¡6.2¡¢业务逻辑
                          ¡¡¡¡接口的调用是否符合业务逻辑¡£比如支付的时候£¬需要上游提供订单号£»创建集群快照的时候£¬要校验集群的状态是否可用¡£
                          ¡¡¡¡6.3¡¢异常场景
                          ¡¡¡¡主要分为参数异常和数据异常
                          ¡¡¡¡下面以一个简单的登录接口为例£¬正常的请求如下
                          ¡¡¡¡关键字异常£º
                          ¡¡¡¡a.请求URL或body中包含Python JAVA等语言的关键字¡£
                          ¡¡¡¡b.参数为空£¬比如下图中的参数usernam为空£º
                          ¡¡¡¡c.多参数或少参数£º
                          ¡¡¡¡多参数£¬请求body中多了参数loginmode
                          ¡¡¡¡请求居然处理成功了£¬可见服务端并没有做校验¡£可以给开发同学提单了¡£
                          ¡¡¡¡少参数£¬删除username参数£º
                          ¡¡¡¡后台返回错误信息£¬这种情况是正常的¡£
                          ¡¡¡¡d.参数不正确
                          ¡¡¡¡比如我?#21069;Ñusername改成userName
                          ¡¡¡¡后台给出了错误的提示信息£¬正常¡£
                          ¡¡¡¡数据异常£º
                          ¡¡¡¡a.数据长度
                          ¡¡¡¡这种情况£¬后台需要校验长度£¬而不是直接进行查询¡£
                          ¡¡¡¡b.数据为空
                          ¡¡¡¡c.数据不正确
                          ¡¡¡¡6.3¡¢安全
                          ¡¡¡¡主要是header£¬cookie£¬唯一识别码等¡£
                          ¡¡¡¡比如我想创建一个集群£¬那我是不是要先登录呢¡£在接口测试的时候可以使用错误的token£¬或已过期的Token下发创建集群的请求并观察服务端的响应¡£
                          ¡¡¡¡创建集群£¬是不是只要登录了就能创建呢£¿答案显然不是的£¬有的用户只能查看的权限但无创建权限¡£那我们就可以使用只有查看权限的用户获取Token后再去下发创建集群的请求£¬看看结果如何¡£
                          ¡¡¡¡关于登录£¬用户的密码必须要?#29992;?#21518;才能传输£¬否则也是不安全的¡£可以使用抓包工具进行查看¡£
                          ¡¡¡¡还有如果因密码错误导致的登录失败£¬后台的返回的错误信息是£º密码不正确¡£这会?#26723;?#26292;力破解的?#35759;ýx?#19981;安全¡£正确的提示信息应该是£º用户名或者密码不正确¡£
                          ¡¡¡¡6.4¡¢接口文档
                          ¡¡¡¡接口的实现要和接口文档完全保持一致£¬方便前台或其他子?#20302;?#35843;用¡£比如接口调用的使用的关键字是username£¬文档?#34892;?#30340;确实usernmae£¬这是肯定不行的¡£
                          ¡¡¡¡接口的返回信息要清晰明确¡£
                          ¡¡¡¡7¡¢接口测试工具的选择
                          ¡¡¡¡postman£º是谷歌浏览器的一款插件£¬非常?#30475;?#22909;用¡£
                          ¡¡¡¡Fiddler£º可以抓取接口信息£¬?#37096;?#20197;进行接口测试£¬自动回复£¬mock等£¬很?#30475;ó¡?/div>
                          ¡¡¡¡假如在接口文档还未完成的情况让测试人?#27604;?#20570;接口测试£¬这种情况下就可以使用Fiddler工具抓取接口信息再进行测试¡£无需等接口文档完成后¡£
                          ¡¡¡¡8¡¢如何提供接口测试的效率£¿
                          ¡¡¡¡假如领导让你测试100个接口£¬你加班加点测试完成后£¬终于松了一口气¡£过几天£¬项?#21487;?#32447;了£¬领导告诉你再去把接口回归测试一遍£¬这个时候你可能就比较头大了¡£有没有好的解决方案呢£¿答案就是API自动化
                          ¡¡¡¡推荐使用Python+unittest+requests完成测试频率高的接口自动化£¬如果有更成熟接口测试框架就更好了¡£一次编写£¬可多?#38382;?#29992;¡£

                             相关推荐£º接口测试进阶篇 http://www.hnwk.tw/html/47/n-4457947.html

                                上文内容不用于商?#30340;?#30340;£¬如涉及知识产权问题£¬请权利人联系博为峰小编(021-64471599-8017)£¬我们将立?#21019;?#29702;¡£

                          ¡¾调查报告¡¿你以为的测试行业现状£¬其实是这样的£¡

                          评 论



                          建议使用IE 6.0以上浏览器£¬800×600以上分辨率£¬法律顾问£º上海瀛东律师事务所 张楠律师
                          版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2019, 沪ICP备05003035号
                          ?#31471;?#21450;意见反馈£º[email protected]; 业务联系£º[email protected] 021-64471599-8017

                          51Testing官方微信

                          51Testing官方微博

                          扫一扫 测试知识全知道

                          <menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
                        1. <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                    1. <dl id="gc5xj"></dl>

                                      <dl id="gc5xj"></dl>

                                      <li id="gc5xj"><ins id="gc5xj"></ins></li>

                                      1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                          <dl id="gc5xj"></dl>

                                              <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                                              <dl id="gc5xj"></dl>

                                                ºÚÁú½­¿ìÀÖ10·ÖÈí¼þ
                                                <menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
                                              1. <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                          1. <dl id="gc5xj"></dl>

                                                            <dl id="gc5xj"></dl>

                                                            <li id="gc5xj"><ins id="gc5xj"></ins></li>

                                                            1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                                <dl id="gc5xj"></dl>

                                                                    <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                                                                    <dl id="gc5xj"></dl>

                                                                      <menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
                                                                    1. <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                                                1. <dl id="gc5xj"></dl>

                                                                                  <dl id="gc5xj"></dl>

                                                                                  <li id="gc5xj"><ins id="gc5xj"></ins></li>

                                                                                  1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                                                      <dl id="gc5xj"></dl>

                                                                                          <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                                                                                          <dl id="gc5xj"></dl>