51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3377|回复: 0
打印 上一主题 下一主题

[原创] 测试女巫紧跟时代脉搏之大数据分析系列之四实战篇

[复制链接]
  • TA的每日心情
    擦汗
    半小时前
  • 签到天数: 1053 天

    连续签到: 3 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2020-11-3 09:15:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    前言
      前三期我们学习了大数据分析的概念,工具以及如果利用这些数据产生漂亮的图形;会不会有一些跃跃欲试的感觉:我辛辛苦苦学习了这么多的枯燥的基础知识,我可不可以找一些公司的正式的测试数据,来练练手?是不是可以对于公司产生一些不一样的价值?
      我这次给大家放大招,给出两个真实的范例,看我们学习了这三期到底可以产生什么惊人的价值,第一个实战是我们拿到天线自动化测试的数据测试 即测试3个小时的report:共有3838个数据。我们拿到这么多的数据,如何通过这些数据获得不一样的测试结论?
      第二个实战是5G测试数据,我们如何分析这些这些测试数据,给老板一个既专业又图文并茂的测试结论呢
      让我们赶紧进入实战之旅吧!
      实战范例之一:天线测试数据分析
      数据整理
      将value按照x轴 y轴 以及sector按照层次分别列出;并计算出value的平均数和总数

    1. import pandas as pd

    2. import numpy as np

    3. import plotly.graph_objects as go

    4. excel_data = pd.read_csv('11adtoolsingle.csv')

    5. result_test = excel_data.pivot_table(values="Value",index=["X-axis","Y-axis","sector"],aggfunc=[np.sum,np.mean])

    6. result_test.head(20)
    复制代码

    运行结果如下图
     计算将value按照x轴 y轴分别罗列后,计算所有sector的平均值

    1. import pandas as pd

    2. import plotly.graph_objects as go

    3. excel_data = pd.pd.read_csv('11adtoolsingle.csv')

    4. result_test =excel_data.groupby(['X-axis','Y-axis'])['Value'].mean()

    5. result_test
    复制代码

    运行结果如下:

    1. X-axis  Y-axis

    2. -40     10       -50.424603

    3. -39     10       -50.371553

    4. -38     10       -49.581362

    5. -37     10       -48.765840

    6. -36     10       -46.163199

    7. -35     10       -46.299201

    8. -34     10       -46.773487

    9. -33     10       -47.197108

    10. -32     10       -47.969916

    11. -31     10       -48.574481

    12. -30     10       -49.738138

    13. -29     10       -50.811379

    14. -28     10       -50.846868

    15. -27     10       -51.398935

    16. -26     10       -51.578865

    17. -25     10       -51.576730

    18. Name: Value, dtype: float64
    复制代码
    加入测试两个Wlan,则将两个Wlan的数值分别整理

    1. import pandas as pd

    2. import numpy as np

    3. import plotly.graph_objects as go

    4. excel_data = pd.read_excel('data.xlsx',sheet_name='Sheet2')

    5. excel_data.head(5)

    6. result_test = excel_data.pivot_table(index=["X-axis","Y-axis","Sector"],columns = ["Wlan"],values="Value",aggfunc=[np.sum,np.mean])

    7. result_test.head(20)
    复制代码
    运算结果如下图

    以什么类型排序显示整理的数据
      将value从小到大进行排序,并显示top 10


    1. import pandas as pd

    2. import numpy as np

    3. import plotly.graph_objects as go

    4. excel_data = pd.read_csv('11adtoolsingle.csv')

    5. result_test = excel_data.pivot_table(index = ["X-axis","Y-axis","Sector"],values="Value",aggfunc="mean").reset_index().sort_values(by = "Value",ascending =False).head(10)

    6. result_test
    复制代码
    运行结果如下

    数据清理
      确认数据基本信息


    1. import pandas as pd

    2. import plotly.graph_objects as go

    3. excel_data = pd.read_csv('11adtoolsingle.csv')

    4. excel_data.info()
    复制代码
    运行结果如下
      就可以看出一共有3838组数据,有8个栏位,其实从这里就可以看出8个栏位都是非空的;每个栏位的type也都能了解。

    1. <class 'pandas.core.frame.DataFrame'>
    2. RangeIndex: 3838 entries, 0 to 3837
    3. Data columns (total 8 columns):
    4. Wlan              3838 non-null object
    5. X-axis            3838 non-null int64
    6. Y-axis            3838 non-null int64
    7. Channel           3838 non-null object
    8. Sector            3838 non-null int64
    9. Sector Gain       3838 non-null int64
    10. Value             3838 non-null float64
    11. Test Report ID    3838 non-null int64
    12. dtypes: float64(1), int64(5), object(2)
    13. memory usage: 240.0+ KB
    复制代码
    确认数据是否非空
      如果不放心,还可以用另外的函数确认是否有non-null

    1. import pandas as pd
    2. import plotly.graph_objects as go
    3. excel_data = pd.read_csv('11adtoolsingle.csv')
    4. excel_data.isna().sum()
    复制代码
    运行结果如下
    1. Wlan              0
    2. X-axis            0
    3. Y-axis            0
    4. Channel           0
    5. Sector            0
    6. Sector Gain       0
    7. Value             0
    8. Test Report ID    0
    9. dtype: int64
    复制代码
     确认数据是否不重复
    1. import pandas as pd
    2. import plotly.graph_objects as go
    3. excel_data = pd.read_csv('11adtoolsingle.csv')
    4. excel_data.duplicated().sum()
    复制代码
    运行结果如下
    1. 0
    复制代码
    数据清理分析结论
      既没有空的数据,也没有空白的数据。
      叙述统计分析
      数据描述分析

    1. import pandas as pd
    2. import plotly.graph_objects as go
    3. excel_data = pd.read_csv('11adtoolsignle.csv')
    4. excel_data.describe().T
    复制代码
    运行结果如下图

    我们的测试结果即output是Value,其它的参数都是input或者index,所以我们需要重点关注Value
      主要看它的平均数以及最大值,最小值,以及25% 50% 75%是否相差太大

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-28 09:51 , Processed in 0.065926 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表