• 0
  • 0
分享
  • 利用Charles进行Mock测试——软件测试圈
  • 恬恬圈 2024-05-13 16:44:16 字数 2136 阅读 1302 收藏 0

  一、Charles介绍

  Charles是一款用Java编写的代理软件,电脑或者手机访问网站首先会访问到Charles代理工具上,由代理工具再把访问数据转发到相应的网站上,所以可以很好的通过设置Charles,对接口的请求和响应进行加工处理。

  Fiddler虽然也是代理工具,但是Charles比Fiddler更好的地方是Charles接口管理层次分明,Charles可以用在Mac平台上。

  二、Charles功能

  1.Charles  是一款Proxy代理工具

  2.Throtte Seting  模拟弱网环境

  3. DNS Spoofing   配置域名  可以当做DNS Server用

  4. BreakPoint  断点测试,拦截发送和回应请求,并修改里面的数据,作为一个对调调试工具

  5. Blook Cookie 屏蔽Cookie

  6. Blacklist WhileList 屏蔽请求

  7. Mirror  采集数据

  8. Map Local  用本地文件做Mock测试

  9. Map Remote 做动态的Mock测试

  10. Rewriter 修改请求过程的数据添加或修改Header数据

  11. Compose 发送自定义数据,做接口测试

  12. Repote Advance 发送多次请求,做接口性能测试。

  三、Mock测试

  ①Tools.Map Remote,接口映射。可以自己开发一组测试接口,将前端的接口请求转到测试接口上,提供开发暂时无法提供的数据,或者是动态处理mock数据,这样就相当于变成了一个mock server 。

1-1.png

  以下为使用Flask搭建的一个简单的MockServer服务。(data为传给访问者的数据)

  # coding=utf-8
  # pip install flask -i https://pypi.douban.com/simple/
  from flask import Flask, request, json, jsonify
  # 实例化Flask类
  app = Flask(__name__)
  @app.route('/hello/mock/', methods=['POST','GET'])
  def postForm():
      data = {"name1": 'jiangyun', "age1": 18,"name2": 'jingyi', "age2": 18,'project':['paobu','youyong','bengdi','hongpa']}
      # 将字典对象序列化,使用json的dumps方法
      return json.dumps(date)
  if __name__ == '__main__':
      # 启用服务 debug=True,加上这个参数之后不用重新执行,他会自动执行
      app.run(host='127.0.0.1',port=5000,debug=True)

   将Tools.Map.Remote的Map To改为自己的MockServer服务的协议、IP、路径即可

  ②Tools.Map Local 本地提供接口数据。可以把自己的本地文件作为数据提供给系统的接口,有时候需要对比页面源码查看文件编码。

1-2.png

  ③Tools.Rewrite  修改接口的请求头,有时候特殊的请求头数据(数据格式、字符集编码)才能正常渲染出来,可以添加,修改,删除头信息。

1-3.png

  注: 如果是在工具中打开则需要添加接口信息,如果是右击接口再选择mock则无需添加当前接口信息。

  四、其它测试内容

  ①接口测试(Compose)

  点击接口右击Compose或者tools工具栏上点击Compose或者点击工具栏的那支笔都能触发设置接口发包。对于既要进行抓包分析(埋点检查,下送字段校验)又要进行接口测试的时候,使用Compose会很方便。

1-4.png

  ②接口性能测试(Repeat Advanced)

  点击接口右击Repeat 或者tools工具栏上点击Repeat,即可触发重复发包,其中Repeat为单次重复发包,Repeat Advanced对接口进行重复发包。

1-5.png

  ③断点测试(Breakpoints)

  点击接口右击Breakpoints或者tools工具栏上点击Breakpoints,即可触发断点测试设置界面,可查看请求数据和修改响应数据,下方的Headers、Text、HTML、Raw的Tab页可切换修改的内容。可修改响应头和响应体。

-6.png

  ④弱网测试(Throttle Settings)

  基于一般电脑都是连网线的,网速不会太差,所以PC端的测试来说,一般不会用到弱网测试,但是移动端就不一样了,网速慢是常态,卡爆的场景也时常发生。所以对于移动端的产品来说,进行弱网测试非常有必要。

  点击Proxy,然后点击Throttle Settings,即会跳出弱网设置页面。

1-7.png


作者:江云    

来源:http://www.51testing.com/html/72/n-7797772.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 上一篇文章沐沐主要阐述了产品质量由谁决定,本文将接上文内容再分享一下如果有效地提升产品质量。提升产品质量的核心还是要提升全员的质量意识,无论是哪个岗位的成员,都需要提升对自己岗位的喜爱度、提高对产品的熟悉度以及提升个人素养,只有全员共同努力才能做出优秀的产品。沐沐所在的部门是产品研发部门,部门成员角色主要是产品人员、研发人员和测试人员。因此下文就主要从产品设计、产品研发、产品测试以及团队协作等四个维度来阐述如何有效地提升产品质量。一、产品设计竞品分析要充分:产品人员通过充分的竞品分析,明确出自己产品的核心竞争力,才能使得产品更有商业价值。需求分析做加法:产品人员需要投入大量的时间进行需求调研,...
            1 0 5084
            分享
          • 上一节我们讲了拿到需求文档后,设计测试用例的过程。在这里我们再来快速回顾下,首先,深入理解需求,熟悉需求细节;其次,了解技术实现,挖掘潜在隐患;再次,有计划有步骤,设计测试用例;最后,补充异常情况,完成查漏补缺。这一讲,我们将对上面这个过程中的第四阶段,补充异常情况进行展开阐述。因为这一阶段,能够最好的体现我们测试工程师对产品测试质量的把握。我们将从下面几个方面进行介绍。结合业务补充用例首先,也是最重要的,就是要结合业务补充用例。只有对业务足够熟悉,才能够更好的完成我们对用例的补充。我们可以从以下几个方面去做检查补充。我们可以从当前需求所在模块与其他模块的边界去进行用例的补充。如果当前需求是和...
            0 0 60
            分享
          • 学习过测试理论的同学肯定都知道,测试人员参与项目的第一步,大部分都是需求评审,但是不少测试同学反馈,自己很少参与需求评审,需求会议也很少喊测试人员参与。我觉得这一方面可能是流程上各角色配合的问题,另一方面可能是因为测试在评审过程中没有体现出参与的价值。针对第一个可能,需要测试主动找产品沟通,一方面表达希望参与需求评审的意愿,另一方面也要求他们在需求评审时喊上测试。针对第二个可能,就需要测试人员从自身上做改进了,为什么这么说呢?我曾经参加过几次需求评审会议,就发现产品在那讲需求,开发偶尔会提一些技术实现上的细节问题,测试就只是在那听了,会议结束后,回去该干嘛干嘛,既然我们测试参与需求评审时不能产...
            3 4 4590
            分享
          •   各大互联网公司的接连裁员,政策限制的行业接连消失,让今年的求职雪上加霜,想躺平却没有资本,还有人说软件测试岗位饱和了,对此很多求职者深信不疑,因为投出去的简历回复的越来越少了。  另一面企业招人真的变得容易了吗?有企业HR吐槽,简历确实比以前多了好几倍,其实是变相的增加了招聘难度,以前是从10份中找一个合适的,现在是从100份中找一个合适的,合适的依然那么少!  问题出在哪了呢?  ·简历很多但是大部分都是初级水平;  · 想找一个全栈自动化测试很难有满足要求的;  · 要求薪水很高,实际能力却达不到。  传统手工测试模式  已成为过去式  测试行业发展到现阶段,目前测...
            0 0 1084
            分享
          • AutoMeter是一款针对分布式服务,微服务API做功能和性能一体的自动化测试平台。针对接口支持分布式功能和性能测试,极大的满足了技术人员的接口测试需求着力解决在系统,项目开发,迭代交付过程中 开发人员,测试人员,技术人员针对系统提供的API做调试,回归测试,性能测试。自动化测试,本质上解决API测试的5大基本问题:1.由什么角色使用?2.在什么环境使用?3.针对什么进行目标?4.做什么样的测试?5.得到什么样的结果?1.运行测试的环境如何定义?一般个人,公司在使用分布式,微服务架构,从开发到发布上线可能会经过多套环境测试验证,比如开发环境,测试环境,准生产环境,生产环境,其中测试环境又可能...
            0 0 2736
            分享
      • 51testing软件测试圈微信