zoukankan      html  css  js  c++  java
  • 测试case提炼与效率提升

    背景:

    有一个需求需要对前端的请求在服务端对权限进行强校验,不同角色权限对不同栏目、页面、按钮有不同对处理

    那么初步计算遍历有所情形会产生的用例数

    角色role 有 -1 、0、1、2、3、4、5、99 共 8 种 

    栏目数:25

    每个栏目下页面数:平均约2~3个

    每个页面交互类元素数:平均约 5 个

    初步估算 用例数 8*25*2*5 = 2000 条

    简化等价类后(通过PICT)剩余 400 条

    设计自动化检测用例

    1、用户权限与session关联参数化

    2、role变更抽离原子化

    3、封装公共请求部分 ,抽离出需要的role、uri 、断言内容 作为参数

    session参数化

    ${cookies}=    Create Dictionary    UM_distinctid=15f536c8e52adb-0ffcfc0c6858-31677c00-240000-15f536c8e535a2    Hm_lvt_8e3083d000c3b20677d54943fd264b4d=1516674788,1517559265    Hm_lpvt_8e3083d000c3b20677d54943fd264b4d=1518441473    gr_user_id=a69ed53d-19d4-4ef2-954c-4ec0ab9a371e    laravel_session=${session}

     封装公共部分抽离参数

    设置role    ${role}                    
    ${role}    query    SELECT `role_v3`  FROM `t_review_user` WHERE `account` ='mp_test';                
    ${header}    create dictionary    Accept=application/json, text/plain, */*    User-Agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36    X-CSRF-TOKEN=fqbmdFDuKEyirIET4xlAwMq4dLPAoovTkqLGVPQy    Accept-Language=zh-cn    Accept-Encoding=gzip, deflate
    ${cookies}=    Create Dictionary    UM_distinctid=15f536c8e52adb-0ffcfc0c6858-31677c00-240000-15f536c8e535a2    Hm_lvt_8e3083d000c3b20677d54943fd264b4d=1516674788,1517559265    Hm_lpvt_8e3083d000c3b20677d54943fd264b4d=1518441473    gr_user_id=a69ed53d-19d4-4ef2-954c-4ec0ab9a371e    laravel_session=${session}
    log    ${cookies}                    
    Comment    ${proxies}    create dictionary    "http"="http://127.0.0.1:8888"    "https"="http://127.0.0.1:443"        
    create session    api    http://test-review-v3.meipian.cn    ${header}    ${cookies}    #verify=${CURDIR}${/}chain.pem    
    ${addr}    get request    api    ${uri}    #{"theme":"0","abstract":"分享自「美篇」","user_id":"${user_info}","title":"${title}","cover_img_url":"http://t-static2.ivwen.com/users/11522545/868987b1256543499e8b1900f739d48b.jpg","token":"${token}","music_desc":"","vote":{},"cover_crop":"","music_url":"","local_id":"3feaef4b66534cd8bee13203454a7956","privacy":"3","content":[{"img_url":"http://t-static2.ivwen.com/users/11522545/868987b1256543499e8b1900f739d48b.jpg","img_height":593,"img_width":947}]}        
    sleep    1                    
    log    ${addr.content}                    
    ${respdata}    to json    ${addr.content}    pretty_print=True            
    should contain    ${addr.content}    ${assert}                

    用例形式

    发现的缺陷列表

    总结:

    自动化完全遍历一次需要半个多小时

    手工执行的话所需时间必然数倍 且容易混乱出错

  • 相关阅读:
    序列化注意事项
    HTML5的新结构标签
    MVC模型
    CSS选择器权重计算规则
    HTML常用布局
    盒模型
    Spring Security 学习笔记-session并发控制
    java实例之随机点名
    java之方法重载
    java之方法
  • 原文地址:https://www.cnblogs.com/maple42/p/8745112.html
Copyright © 2011-2022 走看看