问题描述:
使用jenkins构建接口自动化测试时,发现新增加的接口case不能访问通,会报502错误(本地可以跑通,在测试服就会502)
解决的思路:
缩小调试范围(去掉jenkins db环境,将问题集中在一个测试脚本中,删减多余代码,只用十几行代码表现问题 )
定位到问题:
centos测试服执行接口测试访问的ip 43.243.234.239
本地执行接口测试访问的ip 10.2.2.127
问题解决:
centos测试服配置host
具体解决过程:
问题描述:
本地是ubuntu系统
服务器是centos系统
使用jenkins构建接口自动化测试时,发现新增加的接口case不能访问通,会报502错误
尝试解决问题
因当数据存储在db,所以调试case时等待的时间,和调试的代码范围很大(代码很多,看着头疼,也不易定位问题),所以减少调试代码
做了如下的demo
缩小调试范围(去掉jenkins db环境,将问题集中在一个测试脚本中,删减多余代码,只用十几行代码表现问题 )
同一个demo分别在本地和centos服务器上运行,结果:
import requests url1 = "http://overseas-appapi-test.xxxx.com/site/index" data1 = {"language": "en-us"} res = requests.get(url1,data1) print(res.url) print(res.status_code) print(res.text)
在本地执行demo,请求通过
在服务器执行demo,报502
疑惑ing
因我本地是ubuntu,服务器是centos,所以怀疑难道不同的linux操作系统会对python requests请求造成影响吗?(啊,太小白了,居然会这样想,不过这也说明我对网络,操作系统还需要有很多要了解的知识)
在网上搜索centos7 执行python requests失败,居然真的找到了和我情况相似的人
就是这位楼主了
https://bbs.csdn.net/topics/392505040
楼主是这样说的
结帖了,应该是对方的网站禁用了阿里云的IP,我使用代理进行get之后成功了。
而我查看http返回的状态码,502表示网关错误,是服务器那边处理有问题,心中有这样的疑惑了,我就问了一下我们的项目负责人
负责人教我用如下的方法分析问题
1.在centOS服务器ping测试的域名,查看ip地址
1 ping overseas-appapi-test.5i5j.com
这里可以看到ip地址是43.243.234.239 这是阿里云的服务器地址
2.在本地ping测试的域名,查看ip地址
1.在centOS服务器ping测试的域名,查看ip地址
这里可以看到ip地址是10.2.2.127 这是内网地址
到这里,我就明白了,原来问题出在ip地址这里
项目负责人是这样帮我分析的
所以现在配置hosts地址就可以了
解决办法:
(automationVenv) [root@67 automationtest]# nano /etc/hosts
再测试一下
可以正常访问了
参考
问题分析与定位:
:https://bbs.csdn.net/topics/392505040
centos7配置hosts并使其生效
https://www.cnblogs.com/hujichen/p/5414785.html
不过现在心里还是有个疑问:
1.为什么内网访问不通时会去访问阿里云?
2.centOS测试服访问阿里云到阿里云返回502错误,这中间都发生了什么?
这两个问题是我现在还不能理解的
计算机的知识体系很pang 大,编程只是其中之一,如果真的想做好测试,操作系统,网络知识都是非常重要的