背景:

  公司有一个报表的网站,服务器或系统不太稳定,导致客户有时候查看报表网址的时候网站打不开或者打开时间过长,影响用户体验

需求:

  通过程序循环打开网址了解加载情况,使用谷歌浏览器内核、,程序开发不限平台,不限语言

分析: 

  首先网上随便找找看看有没有类似的工具等,寻找思路。开始的时候如果是监控一个网址,完全可以用谷歌浏览器,通过F12工具可以监控Network相关参数,能达到一次主动分析的需求。但是跟上级沟通后,想要程序自动去加载和刷新,从这点看就需要客制化程序开发。然后在网上找方法,也找到一些工具,但是是商业的要钱。主要是从谷歌浏览器嵌入Winfrom着手,监控网络包。既然是Windows平台使用谷歌浏览器打开网址。自己优先选自己比较熟悉的C#进行开发。虽然中间遇到很多很多问题,我就不一 一说明,我们现在就看结果,过程大家如果想交流可以评论留下联系方式沟通。

价值:

可在一台服务器或电脑上运行,比如一个小时或半个小时,了解重复加载一个网站的时间,能够对环境网络和网站加载性能做一个初步的掌握,省去了使用谷歌浏览器通过F12平凡刷新来主动查看

下载: 

https://pan.baidu.com/s/1QtL0b0pVwZUxvU_mvDRZBQ

程序逻辑:

页面1:负责监听网络数据包情况

页面2:谷歌浏览器加载对应的网页 (页面2会通过加载的情况,回调页面1,显示相应的加载数据,页面最终加载时间通过最后一次加载的时间减去开始运行的时间)

程序主要界面:

 找到对应的网站的IP:

设置网站的网址:

 查看监控详情:

前提条件

.netframework需要是4.5.2版本及以上

如果程序不能正常运行,请安装以下组件:

需要原代码请先使用并评论留下您的邮箱

网站循环加载监控-C#的更多相关文章

  1. 实现LoaderCallbacks接口动态循环加载网上图片并展示在手机屏幕上 ...

    1.布局xml文件 activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/re ...

  2. 关于ES6的module的循环加载

    今天写js时,碰到了一个模块循环加载的错误,下面时例子: // testa.mjs import testb from './testb.mjs'; const {b} = testb; const ...

  3. vue 循环加载动态组件以及传值

    今天遇到一个需求,某个页面是个动态页面,由多个子组件构成. 之前我们的做法是将N个需要的组件import进主页面,然后引用一下即可.但是现在遇到的问题是, 这个动态页面存在多个业务,有的业务需要某几个 ...

  4. 表单配置项写法,表单写成JSON数组套对象,一行是一个数组单位,一列是一个对象单位,然后再写一个公共组件读取这个配置,循环加载slot,外层载入slot的自定义部分,比如input select等,这种写法就是把组件嵌套改为配置方式

    表单配置项写法,表单写成JSON数组套对象,一行是一个数组单位,一列是一个对象单位,然后再写一个公共组件读取这个配置,循环加载slot,外层载入slot的自定义部分,比如input select等,这 ...

  5. Vue 网站首页加载优化

    Vue 网站首页加载优化 本篇主要讲解 Vue项目打包后 vendor.js 文件很大 如何对它进行优化 以及开启Vue的压缩 和 nginx gzip 压缩的使用, 其他就是对接口优化等  1. v ...

  6. JavaScript 模块的循环加载(循环依赖问题分析)

    简介 "循环加载"(circular dependency)指的是,a 脚本的执行依赖 b 脚本,而 b 脚本的执行又依赖 a 脚本. 分析 使用 madge 工具进行循环加载分析 ...

  7. ES6 import 循环加载

    1.示例 (1)a.js import {bar} from './b'; console.log('a.mjs'); console.log(bar); export let foo = 'foo' ...

  8. 关于解决 https 网站无法加载 http 脚本

    前几天刚配置好https网站 然后今天浏览发现自己网站的地图插件不见了 然后看了一下报错显示 然后百度搜索一番找到了解决办法 <meta http-equiv="Content-Sec ...

  9. Github网站css加载不出来的处理方法(转,亲测有效)

    转载链接:https://blog.csdn.net/qq_36589706/article/details/80573008因为工作需求,自己会经常使用到github,但是突然有一天打开github ...

随机推荐

  1. Git 提交代码和更新代码

    首先,操作之前一定要看清分支!! 其次,提交代码之前一定要先更新代码!! git branch        -----查看当前分支 git pull             -----更新代码到本地 ...

  2. javascript面向对象 用new创建一个基于原型的javascript对象

    //创建一个类 其实就是个对象 var Student={ name:"robot", height:1.6, run:function(){ console.log(this.n ...

  3. Python基础之深浅copy

    1. 赋值 lst1 = [1, 2, 3, ["a", "b", "c"]] lst2 = lst1 lst1[0] = 11 print ...

  4. axios中出现两次请求,OPTIONS请求和GET请求

    在项目中发现ajax中出现两次请求,OPTIONS请求和GET请求 查看到浏览器NetWork有两次请求,请求url一样: 查找原因是浏览器对简单跨域请求和复杂跨域请求的处理区别. XMLHttpRe ...

  5. Message NNNN not found; No message file for product=network, facility=TNS

    Message NNNN not found; No message file for product=network, facility=TNS Table of Contents 1. 错误信息 ...

  6. Smarty section、foreach控制循环次数的实现详解

    <!--{ section name='i' loop=$a }--><!--{ if $smarty.section.i.index < 3 }--><!--{  ...

  7. 一百:CMS系统之修改密码逻辑

    定义一个基类form,用于获取错误信息 from wtforms import Form class BaseForm(Form): def get_error(self): # a = {'aaa' ...

  8. React Native使用react-navigation时,设置navigationOptions中Static中使用this注意点

    使用react-navigation时,单页面设置navigationOptions中,进行Static中调用方法,不能像以下设置 onPress = {()=>this.clickFinish ...

  9. redis报错解决

    1.Connecting to node 127.0.0.17000 [ERR] Sorry, can't connect to node 192.168.1.917000 redis集群:Conne ...

  10. How to remove duplicate lines in a large text file?

    How would you remove duplicate lines from a file that is  much too large to fit in memory? The dupli ...