zoukankan      html  css  js  c++  java
  • Selenium

    强有力的测试工具 。

    要做一个模拟UE登录界面的小程序,并修改参数。但是运行服务器端的,所以要自动完成这个工作。

    周二一天按qt webkit来做,我不知道是否有人做出来过, 可以读UE管理页面,但无法写内容到网页上。

    周三借助Selenium+java来做,可以自动登录并修改里面的ip等参数。基本实现了意图。

    还存在一个问题,测试时候firefox页面要出来(显示自动过程),想办法隐藏才是(服务器端没有屏幕)待改进。


    /*********************************************************************************

    *****undefined reference to `getipnodebyname'   linux

    ****************************************************************************/

    getipnodebyname has been deprecated. you should use getaddrinfo instead.
    see:

    RFC3493
    http://www.ietf.org/rfc/rfc3493.txt

    Implementing AF-indipendent applications
    http://www.kame.net/newsletter/19980604/

    Porting programs to IPv6 HOWTO
    http://jungla.dit.upm.es/~ecastro/IPv6-web/ipv6.html

     -- 
     

    /************************************************************************************************************

    ***  Management of Retransmission Timer

    /*********************************************************************************************************

    SCTP端点使用重传计时器T3-rtx来确保数据传送过程中来自对端的反馈。计时器的值也称为RTO(retransmission timeout超时重传).

    如果端点的伙伴是多穴的,端点需要为每个不同的目的传输地址计算独立的RTO。

    RTO的计算管理与TCP重传管理非常接近。为了计算当前RTO,一个端点为每个目的传输地址维持2个状态变量:SRTT(smoothed round-trip time平滑RTT)和RTTVAR(rtt变量).

    1. RTO计算过程

    SRTT,RTTVAR,RTO计算的规则如下:

    C1) 开始RTO设置为 RTO.Initial , 直到第一个包发送到目的端完成RTT测量。

    C2)得到第一个RTT测量的R值, SRTT = R , RTTVAR = R/2 , RTO = SRTT+4*RTTVAR .

    C3)当得到一个新的RTT测量值R',

    RTTVAR = (1 - RTO.beta)*RTTVAR + RTO.beta + RTO.beta * |SRTT - R'|

    SRTT = (1 - RTO.alpha) * SRTT + RTO.alpha * R'

    注意 : 用于更新RTTVAR 的SRTT值是它 第二次更新之前的值。

    经过计算, 更新RTO = SRTT + 4 * RTTVAR

    C4)当传输持续进行并且符合C5原则时,每一轮传输都必须测量RTT。此外,新的RTT测量对于任意目的地址每轮不超过一次。一是表明过多的测量在实际中通常产生不了明显效益,二是如果过多测量,RTO.alpha 和RTO.beta 需要调整,以至于SRTT和RTTVAR大致跟它们在C3里只做一轮测量一样做相同速率的调整。当然准确的这些调整变化仍然值得研究。

    C5) 卡恩算法:RTT测量不能在进行重传时进行。 如果没有块带小于等于R例如第一次发送R,RTT测量应该只使用带序列号 R的块.

    C6) 无论RTO如何计算, 只要它小于RTO.min 就加于RTO.min . 理由是下限太小的RTO值容易引发不必要的超时。

    C7)RTO最大值 是RTO.max

    对用于计算RTT测量和其它状态变量的时间间隔G时钟没有要求,除了以下:

       (G1) 无论RTTVAR 如何计算, 只要RTTVAR = 0 , RTTVAR = G ; 经验表明 细粒度时钟(小于200ms)比粗粒度表现好。

    2, 重传计时器规则

     R1) 每次发送一个数据到任意地址(包括重传),如果那个地址的T3-rtx计时器没有打开,就启动计时直到该地址的RTO超过。这里使用的RTO是根据之前T3-rtx计时器超时后倍增得到的。

    R2)发送到某个地址的未完成数据收到确认后,关闭该地址的T3-rtx计时器。

    R3)当收到前面最早的那个TSN地址的未完成数据SACK,重启T3-rtx按当前RTO。

    R4)只要收到的SACK缺失之前经过ACK时钟确认的序列号, 如果T3-rtx没有启动就对这个数据的初始的目的地址启动。

    3. 超时处理

    只要T3-rtx计时器超时就按如下处理:

    E1)对超时的目的地址,根据7.2.3调整其ssthresh(slow start thresh)  并设置(Congestion Window Size)cwnd = MTU.

    E2)对超时的目的地址,设置RTO = RTO*2 (回退计时器)。最大值按C7(RTO.max) 为上限进行加倍。

    E3)确定有多少最早的(即最低的TSN) 未完成数据块,该地址的T3-rtx已经超时,以将要被重传的目的地址MTU 约束为准,将其放入一个单独的包(这个地址可能与计时器超时的当前地址不同)。这个值称为K, 绑定并在一个单独包里向目的端重传这K个数据块。

    E4) 在要重传的目的地址上启动重传计时器,按规则R1. 用于要启动T3-rtx 的RTO 应该是一个,对于要重传的目的地址接收端是多穴的可能与其超时所拥有的RTO不同(6.4).

    经过重传,一旦获得新的RTT测量(发生于新数据发送并确认,或每个C5发生, 或通过HEARTBEAT测量 , 8.3),按C3来计算,包括RTO的计算(在其一直加倍后可能导致下跌RTO回退,规则E2)。

    注意: 任何发送往T3-rtx计时器超时地址的数据块,但不适合MTU(规则E3)应该加标记后,在cwnd允许后重传(通常在SACK到达之后)。

    最后一个重传机制关注的是失败(6.4.1)

    F1) 每当一个端点从当前目标切换传输地址不同的一个,当前重传定时器继续运行。只要端点发送有数据块的包到新的传输地址时,在该传输地址上启动计时器,使用已经发送数据的这个目的地址的RTO值,按R1规则做。

     /**************************************************************************************************

    ***********************DEFAUL VALUE

    /**************************************************************************/

    sysctl -a 2>/dev/null | grep ".rto_"
    net.ipv4.tcp_frto_response = 0
    net.sctp.rto_initial = 3000
    net.sctp.rto_min = 1000
    net.sctp.rto_max = 60000
    net.sctp.rto_alpha_exp_divisor = 3
    net.sctp.rto_beta_exp_divisor = 2

    sysctl -a 2>/dev/null | grep "path"
    net.sctp.path_max_retrans = 5

    10 = 5 * 2

  • 相关阅读:
    Jupsh_flutter Android 收不到消息 / 排查不出请根据第 9 点说明提供信息
    angular表单 Dom获取表单值以及双向数据绑定
    angular中的组件以及组件中的模板合成
    Flutter开发的app进行设备判断是Ios还是android
    Java的封装
    GCD编程 之 略微提高篇
    多线程基础(六)GCD基础
    我遇到的CocoaPods的问题(也许后期会解决,持续更新)
    iOS之通过PaintCode快速实现交互动画的最方便方法 未解问题
    多线程基础(五)NSThread线程通信
  • 原文地址:https://www.cnblogs.com/iamgoodman/p/4060537.html
Copyright © 2011-2022 走看看