发表于: 2017-11-13 22:20:00
1 711
今天完成的事情:
今天整理整理完了我这部分的深度思考。。
不得不说的是以前的简书做的感人肺腑...
26.问题一:对Service返回的结果是否要判空,为什么?
答案是:绝大多数情况下都需要对Service返回的结果进行判空.
通常调用service之后返回的结果有两种用途:
一种是作为下一个操作的入参.在这种情况下就必须要判空
另外一种是作为最后的结果返回.在这种情况下还需要继续细分;如果这个结果可以为空,那么就不用判断,直接返回,如果这个结果不能为空,那么还要继续判断,并要处理异常情况.
问题二:Service返回的结果是否需要打日志,为什么?
答案:需要.目前在项目中,所有的从Service返回的结果都要打日志.这个问题很好理解,日志是我们了解程序运行,问题追踪的工具.如果从Service返回的结果不打日志,以后出现问题,我们就不能快速的定位到问题所在.
问题三:如果需要打日志,应该打什么样的日志,为什么?
答案:视情况而定
一种情况是数据是一个基本类型或者对象类型,比如通过条件获取ID,或者根据Id获取对象等.
这时还要分两种情况
1.我只需要该对象的属性,比如是否为空,具体返回的数据的值是什么,我们不关心的,就不需要在日志中打印返回的结果的值(代码举例,userController,用户实名接口)
2.我除了要判断该对象的属性,还需要用到该数据的值,比如作为结果返回,或者是作为下一步操作的入参,那么就需要在日志中打印结果,以后如果出现问题,能够方便我们进行调试.
对于第二种情况一般是直接打印这个对象即可,但还要注意不能将用户的敏感信息打印出来,比如说密码,身份证号之类的敏感信息(代码举例,userController,用户实名接口)
另外一种情况是数据是一个集合类型,比如数组,List等.
这种如果没有特殊需求,只需要打印List的长度即可,不需要将所有的list中数据的具体值记录日志,因为这样会特别影响性能,而且打印长度基本也满足了我们对日志功能的需求.(代码举例,producController,查询产品列表接口)
思考:日志应当包括哪些要素?
基本的日志起码要包括以下几个要素
日期,时间(有的要求高的还要提供毫秒信息和时区);会话标识;日志级别;日志内容
日志内容包括上下文,不要只有一个Error,或者success最好是能够简单描述一下原因(代码实例,productController)
28.先定义好了,然后写假数据就给调用接口的前端的人一个格式,然后别人不需要你的接口就可以自测,不用等后端开发完,就可以完成自己的代码,减少前后一起调试浪费时间,
29.postman是什么?
Postman是一种网页调试与发送网页http请求的chrome插件。我们可以用来很方便的模拟get或者post或者其他方式的请求来调试接口。
为什么要用postman测试?
接口
首先在项目的初期,测试人员提前介入,进行接口测试模拟客户端与服务端的交互。有问题提前抛出来。保证接口调用是没问题的。其次,接口测试完成之后在进行系统测试,会轻松很多。明白了各个接口在做什么,各个参数的模拟实际上就是业务场景的模拟。系统测试出现一些问题更快速的定位是客户端还是服务端出问题。最后接口最省时,省力,而且收益很高。
另外,接口是获取和操作资源的方式,而大部分系统和产品中,资源一般都是产品的核心,比如微信核心资 源就是通讯录关系链和聊天记录等,因此资源是必测的。
而接口中大部分的内容是数据,通过数据的对比我们能推测到系统和产品的逻辑,测接口就是测逻辑。最后接口中的返回相对单纯,不像web页面,html代码中有太多ui的东西,ui最不稳定,变化太快,接口相对稳定一点点,但是里面的干扰信息更少,断言相对容易很多。
除了postman还有什么类似的插件?
Jmeter insomnia paw
30. 一.curl发送请求写法
curl -X [GET|POST|PUT|DELETE]
二.wget访问http写法
wget --post-data="xx=xxx" http://www.jnshu.com/aaa
31.(1)外网ip跟内网ip的区别?
外网IP地址全世界仅分配给一个网络设备(比如你在家拨号,分配给你一个IP地址吧,那个地址是唯一的,你用你机器做个网站,别人访问你的IP地址就可以连接到你的机器)
你家好2台电脑,通过一个路由器接好,为了区分每台电脑每台电脑分配一个内部的IP地址,比如192.168.0.2 这个地址是内部的,也叫私网地址,这两台电脑都是通过一个外网IP地址上网的,但他们每个人还有个内网的地址,内网的地址外网不能直接访问。
在服务器上测试接口是否被防火墙屏蔽的时候,该用内网IP检测,还是该用外网IP检测?
都该用,内网ping 本地,查看是否该接口开放,服务器ping 本地查看端口是否对外开放
32.端口是什么含义?
在 Internet上,各主机间通过TCP/TP协议发送和接收数据报,各个数据报根据其目的主机的ip地址来进行互联网络中的路由选择。
我们知道大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据报传送给众多同时运行的进程中的哪一个呢?
端口机制便由此被引入进来。
本地操作系统会给那些有需求的进程分配协议端口 (protocal port,即我们常说的端口),每个协议端口由一个正整数标识,如:80,139,445,等等。
当目的主机接收到数据报后,将根据报文首部的目的端口号,把数据发送到相应端口,而与此端口相对应的那个进程将会领取数据并等待下一组数据的到来。
怎么查看端口被占用?
一、windows
1、查询端口占用情况
cmd > netstat -ano
2、查询8080端口是否被占用
cmd > netstat -ano|findstr 8080
3、查询哪个程序占用了端口
cmd > tasklist|findstr PID
进程号通过2查询可以得到
4、终止该占用进程
cmd > ntsd -c q -p PID
二、Linux
1、查询8080端口是否被占用,并可以查看pid/程序名
netstat -apn | grep 8080Q
2、查看详细信息
ps -ef | grep PID
3、终止该进程
kill -9 PID
今天还看了springmvc
明天的计划:学习下map和list 还有try/catch的使用
遇到的问题:头疼 很多深度思考就一点点看 然后总结
收获:基础知识
任务进度:任务9步骤一
任务开始时间:2017-11-7
预计结束时间:2017-11-11
禅道:http://task.ptteng.com/zentao/task-view-10489.html
评论