UI自动化,需要掌握html相关知识 w3c网站。

会了性能测试就会了接口自动化。

静态扫描:降低40-50%

findbugs,隐含的bug

checkstyle,风格规范

域名解析:

输入网址-DNS域名服务器,进行域名解析-通过IP向服务器发送请求-服务器返回客户端-页面呈现。

客户端呈现时间、网络时间、服务器时间。

IE浏览器最大6个并行。

CDN服务器:内容分发网络。固定的内容,放在离用户最近的地方,就近原则获取。

304:向服务器发了请求,但是本地有,服务器没有返回数据,用的是本地的缓存

Cache:没有向服务器发请求,直接用的本地的缓存。

Cache性能最好,其次304。静态资源才会用缓存。

block 阻塞时间,预处理时间,例如缓存查找,和性能关系不大。

DNS Lookup:域名解析

Connect:连接服务器-TCP/IP连接,3次握手的时间。https=http+ssl 数据加密认证,传输加密数据。也是基于http协议传输,多了一步ssl认证。https-对称加密、非对称加密、公钥、私钥的概念要弄清楚。

Send:客户端给服务器发数据。Get得到的数据比较多,发出的数据比较少。Post发出的数据多,得到的数据少。

Wait:时间是消耗在服务器上的时间。

Receive:一般的网站都是读的多,写的少。所以下载的时候,会跟网络有关系,除非是要上传很多数据量,所以带宽一般指的是下行带宽。如果文档类型压缩比例比较高,则设置在服务器端压缩后返回,一般文本文件选择压缩,比如首页-HTML、jsp等,像图片这种不压缩。

TTFB:从客户端发请求开始,到服务器返回第一批数据的时间。剩下字节的时间叫Receive。B实际上是一批数据,不是一个字节。衡量网络和服务器的灵敏度的。如果这个时间很长,说明网络卡死或者服务器端处理不过来。如果Receive时间很长,说明数据很大或者网络阻塞。

所以说,实际上是TTFB+Receive。

https://tinypng.com/   图片无损压缩,人分辨不出来。

拿到一个web页面,可以先用Yslow扫描一遍。前端性能检测报告。资源名称、资源数量、资源响应时间。测试报告:测试过程、使用的工具、测试结果、建议。

pagespeed  google的一款产品。

工具性能测试快,人体验慢,是因为工具没有页面渲染的时间,只需要请求返回来,但是人在使用的时候会有页面渲染的时间。

工具性能测试慢,人体验快,是因为浏览器和工具不同,比如页面上有100个资源,人看时,只需要看到50个就认为完成了,但是工具需要把100个全部下载完才认为请求结束。

页面下载异步处理,来一部分数据就呈现一部分数据,提高了用户体验。

工具和人体验的本质区别就是前端。

dynatraceajax  https://www.ibm.com/developerworks/cn/web/1205_xieju_dtraceajax/index.html

dynatrace:

1,打开浏览器,启动

2,操作测试网站

3,关闭浏览器

4,查看报告,performance report    pure paths。

5,pure path找到js消耗时间长的,选中一层一层定位到源码。得到报告:xx业务的里面的js执行的很慢,这个js所在的位置是哪个目录下的js文件的第几行代码/函数。

报告里还可以加上请求的得分,里面有xx个js执行的时间很长,

静态性能测试-hc课堂笔记的更多相关文章

  1. Lr原理初识-hc课堂笔记

    showslow web服务器-apache.ngix devops 需求调研-占1/3的时间. 架构拓扑图 APP端测试工具:JT.Vtest 进程是管理单元.线程是执行单元. 虚拟用户和真实用户是 ...

  2. Lr场景设计-hc课堂笔记

    性能测试最基本也是最难的部分:场景设计.瓶颈分析和定位 10个业务10个脚本,每个脚本单独执行:单独场景.10个脚本一起执行:混合场景.10个业务1个脚本:可以设计不同用户登录,分别做不同的操作等场景 ...

  3. Jmeter核心-hc课堂笔记

    自动化测试平台-Httprunner-接口.UI.协议. 平台语言-JAVA-UI-Selenium(java版的).Appium(java版的).接口-Httpclient.Jmeter.(Jmet ...

  4. Linux核心-hc课堂笔记

    windows系统:分区 linux系统:树形结构 <鸟哥的私房菜>关于分区.linux命令.基础篇  服务器篇 关于文件夹: /boot       引导分区,操作系统启动时要到该目录下 ...

  5. Locust环境搭建及应用-hc课堂笔记

    Locust环境搭建: 1,在命令窗口中,进入到python项目路径,如:d:\Pycharmproject\venv\Scripts 2,执行Scripts下的active.bat,进入到虚拟环境 ...

  6. Docker介绍-hc课堂笔记

    1,传统模式-多个服务器:申请.安装jdk等.部署环境. 容器-整包,把有东西打包到一起,把这个包放在服务器上. linux中装了docker,起100个服务,改个数字就可以,5分钟左右. 2,虚拟化 ...

  7. ocp11g培训内部教材_052课堂笔记(042)_体系架构

    OCP 052 课堂笔记 目录 第一部分: Oracle体系架构... 4 第一章:实例与数据库... 4 1.Oracle 网络架构及应用环境... 4 2.Oracle 体系结构... 4 3. ...

  8. 线程(java课堂笔记)

    1.两种方式的差异 2.线程的生命周期 3.线程控制(线程的方法) 4.线程同步 5.线程同步锁 一. 两种方式的差异 A extends Thread :简单 不能再继承其他类了(Java单继承)同 ...

  9. Java基础进阶:多态与接口重点摘要,类和接口,接口特点,接口详解,多态详解,多态中的成员访问特点,多态的好处和弊端,多态的转型,多态存在的问题,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    多态与接口重点摘要 接口特点: 接口用interface修饰 interface 接口名{} 类实现接口用implements表示 class 类名 implements接口名{} 接口不能实例化,可 ...

随机推荐

  1. Java并发编程:什么是线程安全,以及并发必须知道的几个概念

    废话 众所周知,在Java的知识体系中,并发编程是非常重要的一环,也是面试的必问题,一个好的Java程序员是必须对并发编程这块有所了解的.为了追求成为一个好的Java程序员,我决定从今天开始死磕Jav ...

  2. 【Tomcat】JVM,Tomcat,Servlet,Tomcat中的应用。彻底弄懂这些概念之间的联系

    tomcat和tomcat中的应用(即webapps下的war包)是运行在同一个jvm中的,但分工不同. tomcat的角色是“调度员”,而你的应用的角色是“工作者”,tomcat处理一个请求的大致过 ...

  3. Service 动态更新 UI

    http://blog.csdn.net/u013724061/article/details/38642049 最终效果: 动态显示当前时间和电量 思路: 首先在Activity里用内部类定义两种广 ...

  4. HUD6182

    A Math Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  5. linux服务器SSH破解预防方法

    1.linux服务器通过配置 /etc/hosts.deny 禁止对方IP通过SSH登录我的服务器 vim /etc/hosts.deny 2.不用SSH服务的默认端口22,重新设置一个新端口,最好设 ...

  6. python 递归和二分法

    一 内置函数 1. revserd 翻转,返回的是迭代器 # 将 s 倒置 s = '不是上海自来水来自海上' # 方法一 print(s[::-1]) # 方法二 s1 = reversed(s) ...

  7. Java 基础知识总结 3

    13.java类集 类集实际上是一个动态的对象数组,与一般的对象数组不同,类集中的对象内容可以任意扩充. 类集的特征: 1)这种框架是高性能的 2)框架必须允许不同类型的类集以相同的方式和高度互操作方 ...

  8. 高并发情况下,如何生成分布式全局id

    1.使用UUID生成全局id,不占用宽带 2.基于数据库自增或者序列生成全局id,占用宽带,设置自增步长实现集群,但可扩展性差 3.基于redis生成全局id,占用宽度,设置自增步长实现集群,性能比数 ...

  9. Sap R/3 Architecture Tutorial

    What is SAP R/3? SAP R/3 is a 3 tier architecture consisting of 3 layers Presentation Application Da ...

  10. List常用几种方式

    第一种,匹配俩个集合中相同的值 , , , , , , }; , , , , , , , , }; var C= listA.Intersect(listB); foreach (var item i ...