• 0
  • 0
分享
  • 利用Charles进行Mock测试——软件测试圈
  • 恬恬圈 2024-05-13 16:44:16 字数 2136 阅读 951 收藏 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   苹果公司CEO蒂姆?库克在接受《早安美国》节目的采访时表示,他使用了ChatGPT这款聊天机器人,并对其感到兴奋。他还透露,苹果正在密切关注这项技术,并有一些独特的应用场景。  ChatGPT是由OpenAI开发的一款基于生成式人工智能(generativeAI)的聊天机器人,可以与人类进行自然的对话。据报道,今年早些时候,苹果公司出于隐私方面的考虑,限制了员工使用ChatGPT。  当被问及是否使用OpenAI的聊天机器人时,库克称:“哦,我当然使用它。是的,我对它很兴奋。我认为它有一些独特的应用,你可以相信这是我们正在密切关注的东西。”  库克对人工智能和生成式人工智能持谨慎态度,而其...
            0 0 748
            分享
          •   1 月 4 日,赛力斯与华为数字能源技术有限公司(下称“华为数字能源”)共同宣布,双方在深圳签署全面战略合作协议。据第一财经报道,有业内人士称,华为在充电方面可能会打造一个联盟,以提高充电桩的利用率,加速走向盈利。  根据此前官方公布的消息,赛力斯与华为数字能源将在新能源汽车智能电动部件产品、新能源汽车平台技术开发与应用、新能源汽车充电网络建设与运营、新能源汽车国际化等领域展开全面战略合作。  在充电网络超充联盟及服务方面,赛力斯与华为数字能源将携手推进新能源汽车充电超充网络部署,实现平台互联互通。在智能电动部件产品方面,双方将联合研发与制造电驱动、车载充电、增程系统、智能光伏、底盘融合系...
            0 0 596
            分享
          • 苹果6月4日的全球开发者大会上,我们看到iOS的改进之处在于增强了对增强现实的支持。一个全新的ARKit正在崭露头角,随着它的出现,一些令人印象深刻的应用程序和功能可以使混合现实不再仅仅是只一个新奇的玩意了,可以会有更多的应用。      我们还没有看到任何真正令人兴奋的AR,但重要的是要记住这个主题对苹果有多重要。首席执行官蒂姆库克一再表示,他认为AR是苹果长期未来最重要的发展之一。去年,他告诉Vogue,“我认为所有任何部门或行业都会受到AR的影响。” 我们现在还只是看到了渐进式的发展,但AR是构建软件背景的一部分,这将...
            0 0 1861
            分享
          • 看完这篇文章,你将学到如何在 Windows 上搭建基本的 Selenium 自动化环境。1、本次使用的系统环境是最新的 Windows 10 17134 系统;2、本次使用的 Python 版本为 3.4.4,使用这个版本的原因是 3.5 以后就不支持 XP 系统了,但是我有需要 XP 环境的需求,所以一直用的 3.4 版本,Python 下载地址:https://www.python.org/downloads/3、本次使用的 Selenium 版本为最新的 3.13,如果你电脑只安装了一个版本的 Python 可以直接使用命令行进行安装。python -m pip install sel...
            1 2 2483
            分享
          •   前言  应用系统性能测试过程中,性能优化是绕不开的话题,对测试人员而言,性能优化的第一站就是SQL语句的优化与分析。因此本文主要以MySQL数据库为例,介绍常见的慢查询SQL语句执行效率分析与优化方法和简单示例,为致力于应用系统性能优化的从业人员提供一定参考和借鉴。  1 慢查询定位  (1)慢查询  慢查询SQL语句,即在数据库执行耗时超过一定阈值的SQL语句,常见阈值为500~2000ms,可根据业务需求适当调整。如存在大量慢查询语句会直接导致系统响应时间变长,降低用户体验感,因此慢查询的定位与优化是SQL语句优化的主要内容。  慢查询调优的第一步是准确定位慢查询语句,需要数据库开启慢...
            0 0 1831
            分享
      • 51testing软件测试圈微信