201807 学习总结:git、linux、sublime、adb、接口测试

一、git相关

1、git pull 想把本地代码回退到之前的版本

  • git reflog master 列出来的版本号是时间倒叙排序的。

  • git reset –hard {commandID}

二、linux相关

1、打印错误日志:tail -f | grep error 日志打印不会停,只把包含ERROR的打印出来。

2、查看服务器git、maven版本信息

git --version
mvn -version

3、配置修改服务器环境变量

配置环境变量:vim /etc/profile
修改后执行使环境变量生效:source /etc/profile

4、查看服务器系统版本网络配置等相关命令

  • 查看服务器系统版本信息:lsb_release -a

  • 查看网络配置信息:ifconfig

  • 查看mysql运行状态命令:ps aux | grep mysql

  • 停止mysql进程命令:/bin/systemctl stop mysql.service
  • 启动mysql进程命令:/bin/systemctl start mysql.service

  • 关闭服务器防火墙命令:service iptables stop

  • 进入mysql服务命令:mysql -uroot -p 输入密码后进入,输入exit退出mysql

  • 输入密码后如果报错:“Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)”,原因:

    mysql的socket文件是由mysqld服务启动时创建的,如果mysqld服务未正常启动,socket文件自然也不会被创建,当然会找不到socket文件了。 
    判断mysql服务是否启动可以用命令:lsof -i:3306 查看3306端口是否被打开,或者 service mysqld status看mysqlid服务书否正在运行
    

5、ssh通道连接数据库问题

ssh连接远程数据库报错:expected key exchange group packet from server
  • 查看SSHD日志命令: journalctl –unit sshd –no-pager

    升级了openssh版本,这个配置参数已经是被废弃掉的。
    原因是use libssh2, and libssh2 only support diffie-hellman key exchange methods而且升级libssh2也不能解决,应该是个bug。 
    只有在centos 7.4版本出现,7.3和7.5均没有这种情况。
    

6、云服务器ESC Linux MySQL 无法远程连接问题常见错误及解决办法

  • 远程3306端口未对外开放

    解决办法:开始-管理工具-高级安全Windows防火墙  
    入站规则-新规则-规则类型:端口-特定本地端口:3306-允许连接-输入规则名称-再次访问mysql远程数据库
    
  • 安全组规则未配置端口导致10038错误

    打开阿里云控制台,服务器页面,点击安全组配置,进入页面配置规则,新建规则,加上3306端口,再次访问mysql远程数据库
    


  • 报错:EHost ‘XX.XX.XX.XX’ is not allowed to connect to this MySQL serverConnection closed by foreign host.

    服务器是否开启了防火墙,关闭防火墙后再连接
    mysql是否没有打开远程登录
    

打开远程登陆有两种方法。

a. 在本机登入 MySQL 后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从 ”localhost” 改为 '%'。
b. 为 MySQL 创建一个 远程连接的用户

三、sublime快捷键

ctrl+D 选中多个,支持多个变量快速重命名
ctrl+p 文件查找和切换
ctrl+D 选中一个单词
ctrl+L 选中一行
Ctrl+/ 注释整行
Ctrl+M 光标跳至对应的括号
Ctrl+Shift+[ 折叠代码
Ctrl+Shift+] 展开代码

四、用adb命令查看手机APP运行时log

1、手机允许USB调试,但是adb连接不到设备

`List of devices attached
X8QDU15C******        offline`

解决办法:重启电脑,重启手机,查看adb版本,安卓4.4以上,adb版本用:1.0.31,插拔USB线,关闭调试再次开启调试

`List of devices attached
X8QDU15C******        device`

2、第1步都操作过后,还是无法识别到设备,尝试添加真机设备硬件ID:

  • 右击我的电脑,然后找到设备管理器打开。

  • 找到设备(硬件)ID

  • C盘 C:\Users\admin.android下找到或新建一个adb_usb.ini文件。

  • 把VID的数值写入到adb_usb.ini 里面,即0xVID(0x12D1)这6个字符即可。

3、查看log时报错:

`int logctl_get(): open '/dev/hwlog_switch' fail -1, 13. Permission denied
Note: log switch off, only log_main and log_events will have logs!`

原因:手机log开关没开,手机拨号##2846579##,进入projectmenu–后台设置–LOG设置–LOG开关–打开;手机重启后才生效。

4、常用adb命令:

  • adb start-server
  • adb kill-server
  • adb devices 查看系统是否识别设备(List of devices attached 是没有识别到设备)
  • adb logcat -c 清除旧日志信息
  • adb logcat -v time >.\logcat.log 开始抓取日志,>:代表输出到.\logcat.log(adb logcat -v time:是开始抓取日志命令)

五、接口测试

1、接口分类:webservice接口和http api接口

①webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。

②http api接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。

2、接口测试重点:

①用例设计重点:通常情况下主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常);

②测试重点:重点:检查数据的交换,传递和控制管理过程,还包括处理的次数;

接口测试都要掌握哪些知识?

①了解系统及内部各个组件之间的业务逻辑交互;

②了解接口的I/O(input/output:输入输出);

③了解协议的基本内容,包括:通信原理、三次握手、常用的协议类型、报文构成、数据传输方式、常见的状态码、URL构成等;

④常用的接口测试工具,比如:jmeter、loadrunner、postman、soapUI等;

⑤数据库基础操作命令(检查数据入库、提取测试数据等);

⑥常见的字符类型,比如:char、varchar、text、int、float、datatime、string等;

3、如何学这些技能

①系统间业务交互逻辑:通过需求文档、流程图、思维导图、沟通等很多渠道和方式;

②协议:推荐《图解http》这本书,内容生动,相对算是入门级的书籍,其他的还有《图解tcp、IP》等;

③接口测试工具:百度这些工具,然后你会发现,好多的教学博客、相关问题解决方案、以及一些基于工具的书籍,当然,选择合适的书很重要;

④数据库操作命令:学习网站(W3C、菜鸟教程)、教学博客,以及一些数据库相关书籍,入门级推荐:《mysql必知必会》、《oracle PL/SQL必知必会》等。

4、http协议状态码相关

  • get请求,post请求的区别:

    1、GET使用URL或Cookie传参。而POST将数据放在BODY中。
    2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
    3、POST比GET安全,因为数据在地址栏上不可见。
    4、一般get请求用来获取数据,post请求用来发送数据。
    
  • http状态码:

    1、200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
    2、300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了。
    3、400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面。
    4、500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果。
    
  • cookie与session的区别:

    1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
    2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗考虑到安全应当使用session。
    3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用cookie。
    4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
    

    5、使用postman做接口测试,遇到两个问题

    send的时候提示没有登录,解决方法:用浏览器登录,找到登录cookie,复制后,填在postman的Headers里。

    send后无响应,关闭ssl验证后可以正常使用。

你可能感兴趣的:(接口测试,MySQL,Linux,测试理论)