lands测试问题排查过程记录

线su测试问题描述:

新老日志不一致; 新的日志缺少必要的ip字段;

测试环境:10.168.10.x

老模块目录: /home/w/adp1/adf/lands/log

新目录: /home/w/adp1/brand_monilands/logs

 

测试工具目录:/home/w/adp1/test

测试指令: 

./test -u="http://127.0.0.1:8004/adfront/lands?callback=callback&u=https%3A%2F%2Ftopic.m.xxxx.com.cn%2Fnew%2Fmarketing%2F2019%2F6%2Ftianyi_400%2F%3Flmnt%3D6e793ab9-712b-4aa6-9da4-9199eec5caca%26PvAreaId%3D2552101%26mz_ca%3D2124817%26mz_sp%3D7Pjrs%26mz_sb%3D1&r=&issalesleads=callback&pageurlid=10001042&slname=%E7%99%BD%E5%A5%B3%E5%A3%AB&slmobile=13314887235&slcity=150100&slprovince=150000&slcarseries=3989&slcarspec=31247&sldealer=6013%2C2091884&slchanid=2&actionpagereqid=&actionclickid=&_=1561517945229" -pvidlist="123456:250163:404538:222222:4"

./test -u="http://127.0.0.1:8104/adfront/lands?callback=callback&u=https%3A%2F%2Ftopic.m.xxx.com.cn%2Fnew%2Fmarketing%2F2019%2F6%2Ftianyi_400%2F%3Flmnt%3D6e793ab9-712b-4aa6-9da4-9199eec5caca%26PvAreaId%3D2552101%26mz_ca%3D2124817%26mz_sp%3D7Pjrs%26mz_sb%3D1&r=&issalesleads=callback&pageurlid=10001042&slname=%E7%99%BD%E5%A5%B3%E5%A3%AB&slmobile=13314887235&slcity=150100&slprovince=150000&slcarseries=3989&slcarspec=31247&sldealer=6013%2C2091884&slchanid=2&actionpagereqid=&actionclickid=&_=1561517945229" -pvidlist="123456:250163:404538:222222:4"

 

排查思路 :

对比新老日志不同的字段,编写ruby脚本,找到不一样的部分;

核对代码中对应写ip的部分,发现存在逻辑错误,使用新的方式获取ip,并处理后面的两个省市字段;

日志对比代码:

fname = ARGV[0]
if fname == ""
   puts "file name is null "
   exit  
end
File.open("#{fname}").each_with_index  do | line,index| 
#puts "#{index}-------> #{line}"
arr = line.split("\t") 
arr.each_with_index do |ele ,idx| 
  puts "#{idx+1}------> #{ele}"
end  
puts  "---------------------------------------------------------->"

end 

对应的代码逻辑修复:

    if kvLog[LANDSIP] == ""{
        kvLog[LANDSIP] = GetRemoteIp(req)
    }

    if prov, city, _, err := store.GetAreaByIp( kvLog[LANDSIP]);   err == nil ||  kvLog[LANDSIP]  == ""{
        kvLog[PROVINCE] = strconv.Itoa(int(prov))
        kvLog[CITY] = strconv.Itoa(int(city))
    } else {
        logrus.Errorf("|pvlog | search ip library not found, ip:",  kvLog[LANDSIP])
    }




    func GetRemoteIp(r *http.Request) string {
    ip := r.Header.Get("X-Real-IP")
    if ip == "" {
        ip = r.Header.Get("X-Forwarded-For")
        ips := strings.Split(ip, ",")
        if len(ips) >= 2 {
            ip = ips[0]  
        }
    }
    if ip == ""{
        ip =  r.RemoteAddr
        logrus.Warnf("use RemoteAddr %s ",  ip )
    }
    return ip
}

 

posted on 2019-07-01 18:15  iokde.com  阅读(172)  评论(0编辑  收藏  举报

导航