精华内容
下载资源
问答
  • 面向对象面向过程的区别

    千次阅读 2019-10-24 09:12:47
    什么是面向对象?     面向对象就是在一个事务(问题)中,将...面向过程就是在一个事务(问题)中,将事务划分为一个个步骤,通过函数实现这些步骤,然后依次调用执行即可。 举个简单点的例子来区...

    什么是面向对象?

        面向对象就是在一个事务(问题)中,将一个事务(问题)的某些共同特性封装在一个对象中,创建对象不是为了完成某个步骤,而是完成整个事务中某种行为。

    什么是面向过程?

        面向过程就是在一个事务(问题)中,将事务划分为一个个步骤,通过函数实现这些步骤,然后依次调用执行即可。

    举个简单点的例子来区分面向对象和面向过程

        有一天你想吃鱼香肉丝了,怎么办呢?你有两个选择:

    1. 自己买材料,肉,鱼香肉丝调料,蒜苔,胡萝卜等等然后切菜切肉,开炒,盛到盘子里。
    2. 去饭店,张开嘴:老板!来一份鱼香肉丝。

        看出来区别了吗?这就是1是面向过程,2是面向对象。

    面向对象和面向过程的区别

    • 面向对象是模型化的,你只需要抽象出一个类,这是一个封闭的盒子(黑匣子),在这个对象中有你想要的数据以及解决问题的方法,需要什么功能直接使用就好,我们不必去了解它怎么实现的。面向对象的底层其实还是面向过程的,把面向过程抽象成类,然后进行封装,供我们使用就是面向对象了。
    • 面向过程是具体化,流程化。解决一个问题,需要一步步的分析,并且通过函数形式将这些步骤一步步实现,然后依次调用。

    面向对象和面向过程各自的优缺点

    面向对象

    • 优点:易维护,易复用,易扩展,因为面向对象有继承,封装,多态的特点,可以降低系统的耦合,使系统更加的灵活,易于扩展。
    • 缺点:性能相对较差。

    面向过程

    • 优点:性能相对较好,因为面向对象需要实例化对象,开销较大,比较消耗资源。
    • 缺点:不易于维护,不易于复用以及不易于扩展。

    面向对象的三大特性

    1. 封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性。
    2. 继承:提高代码复用性;继承是多态的前提。
    3. 多态:父类或接口定义的引用变量可以指向子类或具体实现类的实例对象。提高了程序的拓展性。

    五大基本原则

    1. 单一职责原则:类的功能要单一,不能包罗万象,一个类对应一种行为或者动作。
    2. 开放封闭原则:一个模块对于拓展是开放的,对于修改是封闭的。
    3. 里式替换原则:子类可以替换父类出现在父类能够出现的任何地方,因为继承的原因,子类拥有父类的显示的属性和方法,也就可以使用父类的相关功能和属性,就可以实现替换父类的功能。
    4. 依赖倒置原则:高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。
    5. 接口分离原则:设计时采用多个与特定客户类有关的接口比采用一个通用的接口要好,可以类比单一职责原则。

    总结

    1. 抽象会使复杂的问题更加简单化。
    2. 从以前面向过程的执行者,变成了指挥者。
    3. 面向对象更符合人类的思维,面向过程则是机器的思想。
    展开全文
  • 掌握HTTP的通信过程以及请求报文响应报文 一、首先我们先来了解一下HTTP协议: HTTP协议(超文本传输协议):是浏览器Web服务器之间进行数据通信的格式,也就是说如果想要实现浏览器Web服务器之间的通信就需要...

    掌握HTTP的通信过程以及请求报文和响应报文

    一、首先我们先来了解一下HTTP协议:

    HTTP协议(超文本传输协议):是浏览器和Web服务器之间进行数据通信的格式,也就是说如果想要实现浏览器和Web服务器之间的通信就需要HTTP这个协议。并且HTTP协议是基于TCP协议的,发送数据之前都需要建立连接。

    接下来我们来介绍一下浏览器访问Web服务器的通信过程:(重点)

    1. 首先用户在浏览器的地址栏中输入网址
    2. 浏览器会通过DNS将输入的域名解析成IP地址
    3. 通过IP地址找到服务器并建立连接
    4. 然后浏览器向服务器发送HTTP请求数据
    5. 服务区收到请求数据后在服务器内部寻找资源
    6. 找到资源后将HTTP响应数据返回给浏览器

    二、再给大家普及一下URL (统一资源定位符)
    URL就是网络资源的地址,简称也就是我们平时所说的网址。通过URL能够找到网络中对应的资源数据。

    URL的表现形式:
    例如:https://www.csdn.com/WangTaoTao_.html

    其中https://是协议部分 、www.csdn.com是域名部分 、 /WangTaoTao_.html是资源路径部分

    这里的域名指的就是IP地址的别名,使用域名的原因就是为了方便记住某台主机的IP地址。

    三、查看HTTP协议的通信过程(了解即可)
    这里以谷歌浏览器为例

    使用谷歌浏览器打开www.csdn.com界面,然后按快捷键crtl+shift+I / F12或者右击任意处选择’检查’皆可调出开发者工具

    开发者工具的效果图:
    在这里插入图片描述
    开发者工具的标签选项说明:
    Elements(元素标签):用来查看或者修改HTML中的内容等
    Console(控制台):查看错误信息,打印调试信息,调试js代码等
    Sources(源代码):查看静态资源文件,调试JS代码等
    Network(网络):查看网页的http协议通信过程等

    开发者工具Network效果图:

    在这里插入图片描述

    . 注:这里的每项记录都是请求+响应的一次过程

    双击进入其中任何一个过程,可以看到这个过程里的请求信息和响应信息。
    在这里插入图片描述

    • Headers选项总共有三部分组成:

    1. General: 主要信息
    2. Response Headers: 响应头
    3. Request Headers: 请求头

    • Response选项是查看响应体信息的
    响应体中存放的主要是服务器返回给浏览器的数据

    四、HTTP的请求报文:

    HTTP最常见的请求报文有两种:
    GET方式的请求报文(获取Web服务器的数据)
    POST方式的请求报文(向Web服务器提交数据)


    HTTP GET请求报文效果图:
    在这里插入图片描述

    GET请求报文的说明:


    —请求行—
    GET / HTTP/1.1 # GET 请求方式 请求资源路径 HTTP协议版本
    —请求头—
    Host: www.csdn.net # Web服务器的主机地址和端口号,这里端口号没写,默认是80
    Connection: keep-alive #与服务器保持长连接 close 代表保持短连接
    Cache-Control: max-age=0 # 缓存控制
    Upgrade-Insecure-Requests: 1 #使用https请求
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36 #用户代理,就是客户端信息
    Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3 #可以接受的数据类型
    Accept-Encoding: gzip, deflate, br #可以接受的压缩格式
    Accept-Language: zh-CN,zh;q=0.9 # 可以接受的语言 zh-CN简体中文 q=0.9代表优先级
    Cookie: uuid_tt_dd=10_20345828700-1562254029050-135310;UserName=WangTaoTao_。。。; #登录用户的身份标识
    —空行—


    注:GET方式一般没有请求体,每一行后面都有一个\r\n换行字符,只是浏览器中看不到


    HTTP POST请求报文效果图:在这里插入图片描述
    POST方式下是有请求体的
    在这里插入图片描述

    POST请求报文的说明:


    ---- 请求行 ----
    POST /xmweb?host=mail.wtt.cn&_t=1542884567319 HTTP/1.1 # POST请求方式 请求资源路径 HTTP协议版本
    ---- 请求头 ----
    Host: mail.wtt.cn # 服务器的主机地址和端口号,默认是80
    Connection: keep-alive # 和服务端保持长连接
    Content-Type: application/x-www-form-urlencoded # 告诉服务端请求的数据类型
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36 # 客户端的名称
    ---- 空行 ----
    ---- 请求体 ----
    username=hello&pass=hello # 请求参数


    #注:POST方式请求体,每一行后面也都有一个\r\n换行字符,只是浏览器中看不到

    总结一下请求报文:

    1. 一个HTTP的GET方式请求报文由:请求行、请求头、空行组成
    2. POST方式的请求报文由:请求行、请求头、空行和请求体组成
    3. 请求行都是由:请求方式、资源路径、HTTP协议版本组成

    五、HTTP的响应报文:

    1.HTTP响应报文效果图:
    在这里插入图片描述
    响应报文的说明:


    —响应行—
    HTTP/1.1 200 OK # 协议版本 状态码 状态说明
    —响应头—
    Date: Fri, 26 Jul 2019 15:12:26 GMT # 服务器的响应的时间
    Content-Type: text/html; charset=UTF-8 # 发送的内容类型
    Transfer-Encoding: chunked # 发送给浏览器的内容是不确定的长度,Content-length 表示固定长度
    Connection: keep-alive #与客户端浏览器保持长连接
    Server: openresty # 服务器的名字
    Content-Encoding: gzip # 内容的压缩格式
    —空行—
    —响应体—
    响应体中的数据在Response中,也就是返回给浏览器的数据
    注:每项数据的后面也都有\r\n

    补充:HTTP状态码的介绍

    HTTP 状态码是用于表示web服务器响应状态的3位数字代码。

    状态码 说明
    200 请求成功
    307 重定向
    400 错误的请求,请求地址或者参数有误
    404 请求资源在服务器不存在
    500 服务器内部源代码出现错误
    5XX 有可能是反爬虫


    总结一下HTTP响应报文:

    1. 一个HTTP响应报文是有响应行、响应头、空行、响应体组成
    2. 响应行由HTTP协议版本、状态码和状态描述组成
    展开全文
  • 前端后台BUG区分方法

    万次阅读 多人点赞 2019-06-13 12:01:45
    怎么样才能定位bug呢?  当bug出现时,一般来说分大致3种情况,  数据库层面的:可能少某个字段,或者字段值为空等等,这些可能在设计数据库时就埋下了错误的种子,导致程序调用数据库错误的数据产生bug,...

    测试工程师不只是负责发现问题,除了发现问题这种基本功外,定位问题,提出解决方案,提出预防方案也是要掌握的技能。这里先说定位问题的要求,定位问题要向深入,前提当然是对功能、产品的流程、开发方案、开发人员非常熟悉了,以我们部门为例,定位bug至少要到下面这种程度。

      首先确定是界面显示问题还是功能问题,

      如果是界面问题,如贴图错误,文字错误,样式错误,则需要截图

      如果是功能问题:

      控制台的问题至少定位到:www的问题还是数据库问题,如果是www问题至少要定位到是前端还是后端问题;如果是数据库问题至少要定位到是服务端接口问题还是中间件问题

      客户端的问题至少定位到:哪个dll模块或者逻辑出的问题

      服务端的问题至少定位到:什么接口出的问题,导致数据库哪里不对

      另外,

      1)测试时不要全按照用例走,要多发散思维

      2)测试时要尽量考虑得更全面,把一些多用户多终端或其他极端的情况都考虑到。

      最后,

      跟进重点问题的修改进度和方案,询问开发时如何修改的,反思开发的修改方案是否存在漏洞

      为何要学会区分前端和后台BUG?

      如果是一个多人开发的系统,不能明确定位到这个bug是谁造成的,容易提交给错误的开发人员,于是bug会像皮球一样被开发踢来踢去,耽误开发解决bug的时间。

      即便提交给对的开发,开发也未必能查到bug产生的原因和代码有问题的地方,因此不一定能修复bug,往往修改了自己认为可能有问题的地方,然后测试发现还有问题,继续发回给开发,开发继续查,来来回回耽误解决bug的时间。

      再退一步来说,如果开发水平很高,没有1和2的问题,对于测试来说也很容易提交重复的bug,因为可能很多bug都是由于一个地方引起的,只是表现出问题不一样,但本质却是一样的,这样也是耽误了测试时间。

      当然能遇到的远远不止以上3种情况,所以对于测试来说仅仅提交bug是不够的,无论对于测试自身的提高积累,还是对于项目进度推进都是非常重要的。

      要怎么样才能定位bug呢?

      当bug出现时,一般来说分大致3种情况,

      数据库层面的:可能少某个字段,或者字段值为空等等,这些可能在设计数据库时就埋下了错误的种子,导致程序调用数据库错误的数据产生bug,这一类问题不算普遍,但也是最容易忽视的一种情况,有时候从数据库入手定位bug说不定还能发现数据库的设计缺陷呢。

      网络层面的:通常这种都是网络情况较差的时候产生的,比如手机的移动网络信号不好,又或是公司网络不稳定,导致js/css未加载完全或者请求超时等等,这种问题其实非程序bug造成的,可以不用提交bug,也不用让开发毫无头绪的去查代码的问题。当然如果可以的话也可以当优化建议提给开发,让他优化代码,比如压缩js/css,增加超时时间,超时后的重试机制。

      代码层面的:普遍的bug基本都是代码有问题造成的,排除掉1和2剩下后就可以确定是程序bug了。对于了解网络架构的人来说,其实程序也分前端和后端的,一般对于界面显示有问题直接可以判断是前端的问题,比如系统兼容性,浏览器兼容性。

      而对于数据或者逻辑上的问题,则需要(检查接口)前端和后台之间是通过接口文件相互联系的,通过抓包工具来进行分析 :

      1)请求未返回数据,可能是client(客户端)请求数据错误,可能是server端处理错误。

      2)请求返回错误的数据,那就是server端(服务器端)处理错误。

      3)请求返回正确的数据,那就是前端处理server端(服务器端)返回数据有错误

      定位bug就像这样抽丝剥茧一层层排除,从而把最后剩下的可能性给找出来,说难其实也不难,但需要有足够的逻辑思维能力来推断,也需要足够的耐心去寻找bug的根源。

      什么是前端和后台?

      常常说到的一个IT项目,包括前端开发,后台开发,软件测试,架构,项目经理,产品需求。那么对于一位优秀的软件测试工程师来说,需要区分前端和后台的工作就显得尤为重要。

      简而言之,前端一般是指界面的设计居多,他们往往需要调用后台的一个接口,进行一个HTTP请求,根据后台反馈回来的数据,渲染到页面上。从而实现按钮(如果前端只是画了页面,接口未调试,点击页面按钮是无反应的),数据显示的正常。

      测试工程师如何区分前端和后台的BUG----------- 前台的bug通常是功能、界面和兼容性等有关;后台的bug与逻辑、性能和安全性有关。与数据相关的错误、排序问题大多是后台问题,对于APP页面toast提示可能是后台给的,可能是APP给的

      1、检查接口

      前端和后台之间是通过接口文件相互联系的,同样,测试人员也是可以看到这个一接口文件,很多人以为,这一点都不重要,那你大错特错了。因为这是区分前端和后台bug的关键。

      2、情况分析

      a、检查请求的数据是什么,反馈的数据又是什么

      可以通过抓包工具来进行抓包分析。

      大多数的浏览器都有自带的抓包插件,如FireFox的FireBug插件,Chrome、360急速模式、搜狗高速模式自带的DevelopTools插件,F12开启抓包后,在NetWork中可以看到当前页面发送的每一个http请求。

      通常情况下,我们可以通过请求接口、传参和响应三部分来判断Bug,另外,也可以在浏览器的控制台进行代码调试定位。

      (1)请求接口URL是否正确

      如果请求接口URL不正确,为前端Bug;

      (2)http请求中的参数是否正确

      如果http请求中的参数不正确,为前端Bug;

      (3)如果接口URL和参数都正确,查看响应内容是否正确

      如果这种情况下响应内容不正确,则为后端Bug。

      (4)如果JS基础比较好的话,也可以在浏览器的控制台中输入JS代码进行调试

      HTTP请求中,如果是get请求,那么表单参数以name=value&name1=value1的形式附到url的后面,如果是post请求,那么表单参数是在请求体中,也是以name=value&name1=value1的形式在请求体中。通过chrome的开发者工具可以看到如下(这里是可读的形式,不是真正的HTTP请求协议的请求格式):

      get请求:

       RequestURL:http://127.0.0.1:8080/test/test.do?name=mikan&address=street      -------请求参数

      Request Method:GET

      Status Code:200 OK

      Request Headers

      Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

      Accept-Encoding:gzip,deflate,sdch

      Accept-Language:zh-CN,zh;q=0.8,en;q=0.6

      AlexaToolbar-ALX_NS_PH:AlexaToolbar/alxg-3.2

      Connection:keep-alive

      Cookie:JSESSIONID=74AC93F9F572980B6FC10474CD8EDD8D

      Host:127.0.0.1:8080

      Referer:http://127.0.0.1:8080/test/index.jsp

      User-Agent:Mozilla/5.0 (Windows NT 6.1)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.149 Safari/537.36

      Query String Parameters

      name:mikan

      address:street

      Response Headers

      Content-Length:2

      Date:Sun, 11 May 2014 10:42:38 GMT

      Server:Apache-Coyote/1.1

      Post请求:

       RequestURL:http://127.0.0.1:8080/test/test.do

      Request Method:POST

      Status Code:200 OK

      Request Headers

      Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

      Accept-Encoding:gzip,deflate,sdch

      Accept-Language:zh-CN,zh;q=0.8,en;q=0.6

      AlexaToolbar-ALX_NS_PH:AlexaToolbar/alxg-3.2

      Cache-Control:max-age=0

      Connection:keep-alive

      Content-Length:25

      Content-Type:application/x-www-form-urlencoded

      Cookie:JSESSIONID=74AC93F9F572980B6FC10474CD8EDD8D

      Host:127.0.0.1:8080

      Origin:http://127.0.0.1:8080

      Referer:http://127.0.0.1:8080/test/index.jsp

      User-Agent:Mozilla/5.0 (Windows NT 6.1)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.149 Safari/537.36

      Form Data--------其中显示请求的参数

      name:mikan

      address:street

      Response Headers

      Content-Length:2

      Date:Sun, 11 May 2014 11:05:33 GMT

      Server:Apache-Coyote/1.1

      这里要注意post请求的Content-Type为application/x-www-form-urlencoded,参数是在请求体中,即上面请求中的Form Data。

      通过chrome的开发者工具看到请求头如下:

       RequestURL:http://127.0.0.1:8080/test/test.do

      Request Method:POST

      Status Code:200 OK

      Request Headers

      Accept:*/*

      Accept-Encoding:gzip,deflate,sdch

      Accept-Language:zh-CN,zh;q=0.8,en;q=0.6

      AlexaToolbar-ALX_NS_PH:AlexaToolbar/alxg-3.2

      Connection:keep-alive

      Content-Length:28

      Content-Type:text/plain;charset=UTF-8

      Cookie:JSESSIONID=C40C7823648E952E7C6F7D2E687A0A89

      Host:127.0.0.1:8080

      Origin:http://127.0.0.1:8080

      Referer:http://127.0.0.1:8080/test/index.jsp

      User-Agent:Mozilla/5.0 (Windows NT 6.1)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.149 Safari/537.36

      Request Payload-------其中显示参数

      name=mikan&address=street

      Response Headers

      Content-Length:2

      Date:Sun, 11 May 2014 11:49:23 GMT

      Server:Apache-Coyote/1.1

      注意请求的Content-Type为text/plain;charset=UTF-8,而请求表单参数在RequestPayload中。

      下面是后台响应参数,

      b、根据接口的文件,检查数据是否正确,至于如何分析,这个就看个人的基础了,如果发送的数据是正确的,但是后台反馈的数据是不符合需求的,那就是后台的问题;如果前端没有请求接口,或者请求的时候发送数据与需求不符,那这个时候就是前端的问题了。总而言之,这种情况很多,需要各位自己多多总结经验。一位优秀的测试开发工程师,当然也离不开好的编程基础。

      前台bug定位:按F12在console中查看报错信息,对于出错的js可以在Sources下查看对应报错的资源文件,写入禅道提交给开发即可

      2.后端的Bug,如何准确的定位问题在哪里,如何精准的描述Bug?

      (1)查看报错日志

      查看报错日志,通过日志分析,需要有一定的经验,并且有一定的代码基础,才能更好地定位问题。

      (2)查看数据库的数据

      了解所测功能的数据表结构,测试过程中,查看数据库的数据,确认数据的正确性。

      (3)查看缓存(如Memcache、apc、redis等缓存)是否正确

      现在来分析bug可能是前台还是后台:

      case1:文本框输入不合法的内容,点击提交按钮, 如果不合法的内容提交成功, 那应该是前后台没有做校验, 前后台都有这个bug

      case2:文本框输入合法的内容,点击提交按钮, 查看数据库中的数据和输入的内容不一致, 这个时候需要看前台传的数据是否正确,使用fiddler抓包, 查看请求头里面的数据是否和输入一致,如果一致就是后台的问题, 如果不一致,就是前台的bug

      case3:界面展示不友好, 重复提交 这些都是前台的bug

      前台定位方法:

      前台bug定位:按F12在console中查看报错信息,对于出错的js可以在Sources下查看对应报错的资源文件,写入禅道提交给开发即可

      前台bug注意以下三个方面:

      (1)网站前台的权限控制:没有权限的用户是不能直接输入url的方式来进行访问的,必须进行登录。以后涉及到权限的测试,一定不能漏掉url的方式也需要验证一下。而在单个页面进行W3C测试时则需要去掉该权限控制。

      (2)网站前台的title,对于这个也很容易忽视。进入到不同的功能页面,title显示应该是有,并且要和你进入的页面一致。title就是在浏览器最左上角看到的那些文字

      (3)http和https的注意点:https是一种安全链接,它是需要证书的,而http就是普通链接,所以在你的系统中客户会要求某些关键的地方希望加上这种安全连接,那么此时你需要注意的是,对于不需要的安全链接的地方千万也要去重点测试,有些开发会很容易忽略这一点。

      你要打开HTTPS开头的网站,前提是该网站安装了SSL证书,只有安装了SSL证书的网站,并且开启了443端口,你才可以通过HTTPS加密协议无访问。如果没有则不能访问。

      你可要测试,比如在某个网站http协议后面加个s去访问,看能否访问成功,能成功,会显示绿色安全小锁,否则就不能访问。给你举几个安装了ssl证书,可要https访问的网站,1号店,天猫,淘宝,支付宝,百度,沃通CA,工信部网站等等

      前端bug主要分为3个类别:HTML,CSS,Javascript三类问题

      给个最大的区别方式方法:

      出现样式的问题基本都是CSS的bug

      出现文本的问题基本都是html的bug

      出现交互类的问题基本都是Javascript的bug

      现在以淘宝的前端人员工作为例进行相关bug定位的剖析

      判断前后台问题的区分方法:

      F12, 打开错误控制台console

      区分前后台交互:查看网络请求

      a) Html中如果有链接,有相应的情况下,基本可以定位到是属于前端的问题

      b) 如果为空,或者有出现error错误信息,我们就可以定位到属于后台开发的问题

      TMS对应的VM模板,出现的一些截断控制,转换功能都属于前端的问题

      一、HTML

      最常见的HTML的问题—就是标签的问题了,最常见的排查和解决办法就是查看页面源代码,然后通过检查标签的工具,现在暂时提供idea.exe进行检查,有其他更好的工具再进行推荐。

      常见问题类别:

      标签闭合—表象,页面中出现大范围的混乱,就是少了标签的情况,导致标签未闭合

      标签浮出—例如鼠标移动到文本位置,浮出全名的这种浮出形式都属于标签浮出的问题

      标签在不同的浏览器的一种解析方式的不同导致的前端bug例如如下结构

      该部分可以看做为一个大的框即是标签<a> 内嵌标题的标签<p>,里面再有这些个内容<ing>,那么在不同的浏览器中,可能ie和FF的解析会产生不同,假设IE解析为<a><p><ing></ing></a></p>的一种形式,但在FF下可能解析为

      <a><ing></ing></a>

      <p></p>

      的两行的形式从而导致前端在复古鞋/板鞋这块ing里面的格式产生混乱

      结构可看为:

      页面定点的问题:最明显的前端功能,在于点击某个链接将页面位置定位到对应的位置

      a) 我们可以通过右键,查看元素的工具进行定位到毛点所定位到的位置,如果出现问题这种问题很直观,并且能通过这种方法直接定位到问题

      页面的跳转,也属于html的问题,大家在出现点击未跳转或者跳转方式不正确的问题,直接可以定位到跳转属性的问题,找到对应的跳转对应的块提供给开发人员即可

      二、CSS,产生样式问题。例如:排版,布局,颜色,背景等

      css的bug主要分为:兼容型bug 、业务性bug 和 内容型bug

      兼容型bug

      a) 表现:仅在少数几个浏览器上出现

      b) 原因:浏览器的解析不一致

      c) 解决:根据实际情况进行前端代码的通用性

      d) 类别:

      脚本兼容型问题:在出现对应交互的问题就基本可以定位到脚本兼容型bug,例如DIV的显示和层结构。实际可以参考聚划算的几个商品鼠标移动到小图的时候,对应大图展示的功能。

      页面样式兼容型问题:直接表象在样式上,都是基于框架的页面展示错误,很容易定位

      业务性bug

      a) 表现:在所有浏览器下都有该问题

      b) 原因:对业务不熟悉

      c) 解决:根据需求进行修改达到业务要求

      该类型的定位,主要在和实现的要求不一致,最直接表现在页面的友好型,用户的可用性的bug,可以定位为该类型

      内容型bug

      a) 表现: 前端自测正确,但在填入内容后,出现的错误,内容消失等

      b) 原因: 扩展性未考虑周全

      c) 解决: 进行overflow test

      输入内容的长度限制等功能可定位为内容型bug

      三、Javascript

      最直接的判断方法,刷新页面,出现滞后显示的一些模块基本都为脚本的输出块。该部分的一些问题可以参照兼容型bug中类别的脚本兼容型bug。

      有产生交互类的问题,大多数都可以定位到是属于javascript产生的问题,该部分大多不会报错

      有错误提示类的。页面左下方有出现javascript的错误提示;有弹出错误信息提示的bug;浏览器返回的一些错误弹出框都属于javascript的bug

      后台bug定位:根据后台日志文件

      系统使用secureCRT进行日志获取

      (1)编码问题:tomcat是新的,需要改编码 修改tomcat的server.xml文件<Connector port="8080" URIEncoding="UTF-8"/>

      特别是windows下的项目重新部署到linux系统下,

      (2)空指针:程序问题,一般没有考虑到为空情况,或者主外键约束的数据为空,或者删除关联数据,导致为空

      (3)长度过长,超过最大长度,测试环境修改数据库字段长度后生产环境未修改,导致报错!!

      (4)非法数据:

      (5)内存溢出:重启

      系统使用secureCRT进行日志获取,或者服务器控制方面的操作(关闭和重启)

      重启的一般情况:

      1)热部署 (新增部分功能,或者修改部分bug)

      2)发布新版本 (整个系统)

      3)内存溢出,此时重启服务器即可

      由于项目中有线程程序,./shutdown脚本关闭tomcat程序,不能把启动的线程全部关闭,造成服务器启动线程未关闭的错误。

      Linux系统中重启Tomcat的一般步骤:(一般是先关闭进程,然后进行重启 ,如果 /要删除某个文件:rm 文件名,或者不为空的文件夹:rm -rf 文件夹名)

      cd usr/local/   //测试服务器名称/bin

      ps -exf         //看测试服务器下运行的项目的主进程(最前面的数字为PID进程号)

      kill -9 PID     //强制关闭某一项目的主进程

      ./startup.sh    // ./**.sh 即执行重启shell脚本文件 ,此时在测试服务器的bin下面,直接执行即可,其余的加上 chmod a+x shell脚本文件,也可用./执行

      小知识:

      ps aux和ps -ef命令区别

      ps aux 是用BSD的格式来显示java这个进程

      显示的项目有:USER,PID,%CPU,%MEM,VSZ,RSS,TTY,STAT,START,TIME,COMMAND

      ps -ef 是用标准的格式显示java这个进程

      显示的项目有:UID,PID,PPID,C,STIME,TTY,TIME,CMD)

      3.如何查看日志?

      一台服务器可以部署多个应用:

      cd usr/local/测试服务器名称/logs               //查看先进入到服务器的logs目录下

      tail -f catalina.out                         //监视catalina.out 文件的尾部内容(默认10行)

      4.日志中常见的问题

      获取日志文件中常遇到的问题:

      1)编码问题:tomcat是新的,需要改编码 修改tomcat的server.xml文件<Connector port="8080" URIEncoding="UTF-8"/>

      特别是windows下的项目重新部署到linux系统下,

      2)空指针:程序问题,一般没有考虑到为空情况,或者主外键约束的数据为空,或者删除关联数据,导致为空

      3)长度过长,超过最大长度,测试环境修改数据库字段长度后生产环境未修改,导致报错!!

      4)非法数据:

      5)内存溢出:重启

      5.一般的问题原因总结:

      程序:为空判断,增删改查,不同公众号调用的接口也不一样

      数据初始化:数据库表结构和数据初始化,权限配置,

      特别注意生产环境上的用户数据修改,此时用户在使用,很重要!!!

      故障无法重现时:

      1)看日志,根据日志定位原因,则在测试环境中按照日志提示构造条件相同的测试案例测试,尝试在测试环境中将问题重现。

      2)测试环境和配置与实际的工程环境和配置有哪些差异等等。同时主动与开发负责人、工程实施人员以及有经验的项目经理讨论,分析可能导致的原因。

      测试环境ok,生产环境新增时保存失败,查看后台日志报长度溢出,数据库内容字段要求和生产环境不一致!!

      6.辅助工具:linux和SQL

      linux查看日志

      SQL用来筛选数据或直接进行数据修改状态,多用于集成测试过程中前后流程相连接

      三.浏览器兼容性和网页规范标准测试

      浏览器兼容性测试(偏主流浏览器,如谷歌,火狐,IE8以上):

      https://dev.windows.com/en-us/microsoft-edge/tools/staticscan/

      W3C网页验证:(判断网页书写是否符合规范,记住此处必须去掉权限控制,单个单元页面url需要跟参数)

      https://validator.w3.org/

      W3C手机端页面检测(如手机微信菜单下的页面):

      https://validator.w3.org/mobile-alpha/

      互联网测试与传统测试的区别

      1.最大的不同:互联网产品需要自己部署和运营,用户使用瘦客户端(浏览器,app或一个需要安装的client),核心的数据和业务逻辑在互联网公司的机房,在IDC,在云端。

      如:我们做的系统用户只需一个浏览器,服务器用的阿里云,部署和运营只需要一个运维人员即可。

      考虑现网(生产环境)存在下面两个问题:

      (1)如何发布功能到现网

      互联网测试完一般可直接发布,测试周期短,有时候需要进行灰度发布,先让部分用户用起来,发布完做生产验证。

      (2)如何保证测试环境和生产环境同步

      测试环境比较难搞,拿我们做的懒企鹅来说,牵扯的系统平台比较多,用到很多微信平台的接口,这个很难自己搭建或者用mock。

      另外保证测试环境和到生产环境都是好的,需要代码和数据库,以及环境配置都要保持一致,这需要相应的机制和工具来验证和同步。

      2.互联网产品节奏很快

      有的软件公司,基本是进行二次开发,周期长,每次都需要经过下面几个完整的测试流程:

      客户提出需求--BA和客户沟通,确定出需求和解决方案--测试人员根据需求说明书和解决方案编写测试用例---进行概要评审--进行详细设计评审--开始测试--回归测试--生产验证。

      现在的互联网产品测试基本为:

      产品经理确定好测试需求--开发人员写详设-(此阶段可以进行设计bug检查)--开发人员开发--测试人员测试,上线

      来不及测试设计,来不及自动化,短时间内如何保证测试的覆盖率和质量?--(探索式测试应势而生)

      3.更多的人参与到测试中

      互联网公司有专门的测试团队的比较少,一般开发和测试比例: 7:1,如何保证质量?

      1)开发人员的自测

      开发人员进行单元测试测试用例的通过率,同一个版本拉代码的次数

      2)产品或运营人员的体验

      在这里基本我就相当于用户,进行产品体验,或者根据免费试用者反馈的意见进行优化

      3)发布之前的评审

      注意环境,配置,数据方面的问题

      4.有一些是免测试的

      并不是所有发布到生产环境的东西都需要在测试环境检验,如:图片样式改动,小bug修复,但是哪些免测是个复杂的问题

      5.海量用户带来的挑战

      1)性能方面

      如何做轻量级的性能测试

      2)浏览器的兼容性

      现在的系统大多基于主流的火狐,谷歌,IE8以上,放弃浏览器兼容就等于放弃一部分客户。

      6.测试工具和技术方面

      传统的企业花钱购买商业软件,如QTP,loadrunner,或者自己开发的项目管理工具

      大部分的互联网公司使用开源或自主研发的,如 selenium,appium,robotium,monkeyrunner,jmeter

      相同点:

      1.都需要非常熟悉产品和业务

      2.都需要了解产品的技术(深度测试方面性能分析,内存泄露,web服务器,cache,代理)

      3.具体的测试技术

      4.测试设计的方法

      5.测试人员的技术体系:

      实战

      图中参数city code 为空此时不应该为空,为空就可能导致前端看不到该数据

      后台返回的一条数据没有----后台BUG

    展开全文
  • 问题: Python变量名区分大小写,所以studentStudent不是同一个变量。答案: 对更多相关问题问题: 设随机变量X与Y相互独立,且都服从均匀分布U(0,1),求Z=X+Y的分布。答案: P(Z)=Z,Z∈﹙0,1﹚P(Z)=2-Z,Z∈﹙1,2﹚;...

    截屏微信扫一扫关注微信公众号 ,即可在线查题,支持语音搜题哦!自动回复答案!

    问题: Python变量名区分大小写,所以student和Student不是同一个变量。

    答案: 对

    更多相关问题

    问题: 设随机变量X与Y相互独立,且都服从均匀分布U(0,1),求Z=X+Y的分布。

    答案: P(Z)=Z,Z∈﹙0,1﹚P(Z)=2-Z,Z∈﹙1,2﹚;

    问题: [单选] 业务开展流程、业务管理流程、服务开展流程、服务管理流程和客户管理流程是()内容。

    答案: A

    问题: 气管套管拔出之前,应先试行堵管

    答案: 24~48h

    问题: 建设中华民族共有的精神家园,从文化哲学角度而言,实际上是精神文化的认同过程

    答案: 是

    问题: 人民群众是历史的创造者。这是因为人民群众是()

    答案: C社会变革的决定力量, B社会精神财富的创造者, A物质财富的创造者

    问题: 【判断题】从新中国成立到20世纪50年代中期,中国外交的中心任务是实行一边倒的外交方式,巩固中国与社会主义国家的关系。()

    答案: ×

    问题: 动画显示构件用于实现( )的效果。

    答案: 动画显示#多态显示

    问题: 常量“AB”所占字节数为

    答案: 3个字节

    问题: 对于受对称循环的转矩的转轴,计算当量弯矩 ,应取__

    答案: 1

    问题: [单选] 年名义利率为i,一年内计息周期数为m,则年有效利率为()。

    答案: B

    问题: 有限责任公司经营了一段时间后,在有新的投资者要加入时,其出资额通常要其在注册资本中所占的份额

    答案: 高于

    问题: 急性肾盂肾炎病人最重要的护理措施为?

    答案: 关注上面公众号,发送题目即可搜题

    问题: 演讲者应该具备什么素质

    答案: 关注上面公众号,发送题目即可搜题

    问题: 中国属于自卫型国防的国家

    答案: √

    问题: 印度庙宇的修建与三位一体的主神相对应,这三位一体的神包括()。

    答案: 毗湿奴#梵天#湿婆

    问题: 中国大学MOOC:带宽是1MHz,信噪比是3162(35dB),最大数据传输速率是()。

    答案: 11.62Mbps

    问题: 中国大学MOOC:关于LINGO软件过滤条件使用说法错误的是()。

    答案: 过滤条件用“/”引导

    问题: 党在过渡时期的总路线的实质是

    答案: 解决生产资料所有制问题

    问题: 《广告也疯狂》认为广告创意的第一个规则是提升价值。

    答案: 对

    问题: 汉字系统中的汉字字库里存放的是汉字的_____。

    答案: C

    问题: 网络营销战略的制订要经历三个阶段,分别是:()

    答案: ABC

    问题: 球坐标型机器人的手臂的运动由两个直线运动和一个转动所组成

    答案: 对

    问题: 中国特色社会主义是中国特色社会主义道路、理论、制度、文化四位一体的社会主义,是统揽 的社会主义。

    答案: 伟大斗争、伟大工程、伟大事业、伟大梦想

    问题: 电影《党同伐异》的导演是()。

    答案: 格里菲斯

    问题: 字体的共用组合是指(    )。

    答案: 一个形态与另一个形态互相借用形态相似的部分, 同时又保持各自相对的完整性

    问题: 正常产褥期母体生殖器官逐渐恢复的描述正确的是

    答案: 于产后10日,腹部检查扪不到宫底

    问题: [填空题] 在框架设计中,一般将竖向活荷载按满载考虑,不再考虑活荷载的()。如果活荷载较大,可按满载布置荷载所得的框架梁跨中弯矩乘以()的系数加以放大,以考虑活荷载不利分布所产生的影响。

    答案: 不利布置、1.1~1.2

    问题: 中国大学MOOC:IPMT、PMT、FV⽤到利率的参数对于是否为固定利率⽆所谓。

    答案: 错

    问题: 实现今年经济社会大战目标的重要举措有:

    答案: 激发要素市场活跃度#多举措并举确保就业大局稳定#实施积极的财政政策#保持经济平稳运行

    问题: 某患者为舞蹈演员,突遇车祸,双腿须截肢,出现大吵大闹、不配合治疗等反应,此种情绪属于

    答案: 病人角色行为冲突

    问题: 下列属高耗水、高污染的行业是()_

    答案: 造纸

    问题: 患者,女,61岁,因支气管哮喘发作急诊入院,护士不需要做的是

    答案: 关注上面公众号,发送题目即可搜题

    问题: 妊娠滋养细胞疾病患者刮出物送病理检查,见子宫肌壁内有水疱样组织,镜下见增生的滋养细胞成团块状,但绒毛结构完整,该患者的诊断是

    答案: 关注上面公众号,发送题目即可搜题

    问题: 像绣球压花对MOD胶比较敏感通常避免使用MOD胶,但如果非要使用MOD胶对其进行涂胶保护,可以选择下来哪种方式解决来绣球压花对其敏感的问题?

    答案: 对绣球花进行覆膜保护后再涂胶

    问题: 企业库存材料发生盘亏或毁损,在查明原因后应分别记入科目

    答案: 其他应收款#营业外支出#原材料#管理费用

    问题: 区块链的组成部分有()。

    答案: 账本, 共识机制, 数据化交易物

    问题: 好的商业故事讲述一般包括以下几个重要要素()。

    答案: 反派, 完美结局, 正派

    问题: 健全( )和集体领导制度,加强执政党建设,是社会主义事业顺利发展的政治保证

    答案: 民主集中制

    问题: [单选] 反应PCl3(g)+Cl2(g)PC5(g),在298K时,,此温度下平衡时,如p(PCl5)=p(PCl3),则p(Cl2)=()。

    答案: A

    问题: [单选] 下列哪一项不属于扑救的基本原则()

    答案: B

    问题: 中国大学MOOC: Problems of upbringing are recognized to be problems of relationships within the individual family, the first necessity __________ a secure emotional background with parents who are united in their attitude to their children.

    答案: being

    问题: 新时期最显著的成就就是快速发展,新时期最鲜明的特点是与时俱进。新时期最突出的标志是改革开放。

    答案: 关注上面公众号,发送题目即可搜题

    问题: 在写生的时候,近和远的物体间“天热”存在什么样的视觉差异?

    答案: 模糊, 清晰

    问题: 心肺复苏成功的关键是

    答案: 高质量的胸外心脏按压和及时的电击除颤

    问题: 全球各地区最高摩天大楼的竞争属于连续博弈的研究范畴

    答案: 是

    问题: 王某出售一批货物给张某,双方约定,王某于20X5年2月10日向张某交付货物,张某于一个月后向王某付款

    答案: 20X8年3月10日

    问题: 双向调压都有哪些元件组成

    答案: 关注上面公众号,发送题目即可搜题

    问题: 中国大学MOOC: 等概时信源的熵有最大值,且等于其中每个符号的信息量。

    答案: 错

    问题: 法律主要是( )意志的表现

    答案: 统治阶级的

    本站信息来自于网络,如有侵权,联系删除!

    展开全文
  • 如何区分前端BUG后端BUG

    千次阅读 多人点赞 2020-06-09 16:50:10
    1、如何区分前端后端 通俗讲,用户看到的部分都叫前端。 而用户看不到的部分可以统称为后端。 2、前端后端的呈现形式 前端的呈现形式有web端、移动端(ios、安卓)、小程序等。 后端系统一般只有一个,...
  • 指纹识别原理和过程

    2021-07-22 01:35:57
    指纹识别概念指纹识别是...指纹识别的原理和过程指纹识别技术的原理其它生物识别技术的原理相似。它是利用人体的指纹特征对个体身份进行区分和鉴定。在所有的生物识别技术中指纹识别技术是目前最为成熟,也被应...
  • 如何区分前端BUG后台BUG

    千次阅读 多人点赞 2019-06-03 14:54:46
    即便提交给对的开发,开发也未必能查到bug产生的原因和代码有问题的地方,因此不一定能修复bug,往往修改了自己认为可能有问题的地方,然后测试发现还有问题,继续发回给开发,开发继续查,来来回回耽误解决bug的...
  • 局部最优鞍点区分

    千次阅读 2018-10-14 19:58:10
    区分最高点最低点当然就是用二阶导数(斜率从负变正的过程当然就是“下凸”,即斜率的导数大于0,即二阶导数大于0。反之则为“上凹”,二阶导数小于0)。 也就是说, 若某个一阶导数为0的点在至少一个方向上...
  • fMRI与MRI区别+名词解释+MRI中T1T2的含义与区分

    万次阅读 多人点赞 2019-09-25 16:22:10
    磁共振成像(MRI)提供人体内部结构的图片,而功能性磁共振成像(fMRI)评估代谢过程。MRI可以在身体的任何地方使用,而fMRI的研究则集中在大脑上,在大脑中可以显示活动水平非常细微变化的成像尤为重要。在某些情况...
  •  引起机械裂纹的主要原因有两种。种是挤压裂纹,它产生在元件拾放在PCB板上的操作过程。第二种是由于PCB板弯曲或扭曲引起的变形裂纹。挤压裂纹主要是由不正确的拾放机器参数设置引起的,而弯曲裂纹主要由元件焊接上...
  • java程序中不区分大小写字母更多相关问题由于( )相同,比色皿厚度一样,所以As/AX=CS/CX成立标准化工作,在整体上看,它是一个对标准化的对象加以优化、简化、统一、协调、扩散、积累提高的不断循环、上升的过程。...
  • 主要包括两个协议:TCP协议UDP协议。 传输层的主要作用:分段及封装应用层送来的数据;提供端到端的传输服务;在发送主机与接收主机之间构建逻辑通信。 1. 传输层中的端口号: TCP/IP协议中的端口就是逻辑端口...
  • 大数据篇:如何区分流处理批处理 今天我们来讲讲大数据的处理模式:批处理(Batching Processing)流处理(Streaming Processing)。 这几年大规模的物联网(IoT)数据监控系统视频流系统等的大数据系统出现,...
  • 首先,是需要明白一些字段的含义,这样三次握手、四次握手的流程图就立马可以很轻松地理解,并迅速手绘了。...seq:该字段为请求序列号,譬如为seq=x, 能够标示一个请求包,在众多包种区分其身份 ack:该字段
  • 如何区分前端bug还是后端bug?

    千次阅读 2020-11-02 18:12:58
    所以,一个资深的测试人员的基本功应该是这样的:深挖业务功能需求,找出BUG,定位BUG,提出解决方案。这里我们就来说说,当我们找到了BUG,应该把BUG提交给谁去解决,这属于BUG定位的问题。 试想: 根据需求,用户...
  • 今天在开发过程中发现我们的数据库MySQL查询时不区分大小写,不管是=还是like. 百度之,发现如下解答
  •  web浏览器服务器之类的交互过程必须遵守的协议.他是tcp/ip中的一个应用协议。用来协议数据交换过程和数据本身的格式.主要的有HTTP/1.0HTTP1.1.   HTTP/1.0HTTP/1.1都把TCP作为底层的传输协议。
  • 如何区分前后端BUG?

    千次阅读 多人点赞 2019-11-09 15:46:02
    所以,一个资深的测试人员的基本功应该是这样的:深挖业务功能需求,找出BUG,定位BUG,提出解决方案。这里我们就来说说,当我们找到了BUG,应该把BUG提交给谁去解决,这属于BUG定位的问题。 试想: 根据需求,用户...
  • BLE蓝牙的连接配对过程

    万次阅读 2019-12-24 22:52:19
    同一款手机,为什么跟某些设备可以连接成功,而跟另外一些设备又连接不成功?同一个设备,为什么跟某些手机可以建立连接,而跟另外...什么又是Connection eventslave latency?希望这篇文章能帮助你回答上述问题。
  • 最近在做一个检测存储器稳定性的一个项目,要检测SD卡或者SSD的稳定性,过程中遇到了一些问题,所以在...我在网络中搜索了很多内容,目前基本解决了怎么区分本地硬盘外接硬盘。但是如何从根本上区分刚买的电脑中的磁
  • 区分-JVM内存分区Java内存模型(Java Memory Model)

    千次阅读 多人点赞 2019-05-08 17:55:13
    也是最近被问到了Java内存模型,学识浅薄,一直以为内存分区内存模型是一个东西,现在做一下笔记整理一下以区分和学习这两个概念及其延伸的一些知识点。 开门见山 解决问题 JVM内存分区具体指的是JVM中运行时...
  • JPA : 区分 persist() merge()

    千次阅读 2019-06-25 15:06:20
    // 原因解释 : 合并过程中有两个对象,合并来源对象,合并目标对象 ,整个合并过程中,参数对象 e // 作为合并来源对象(而不是合并目标对象),一直都不会设置到`managed`对象,因此合并结束后的对 // e....
  • 压缩木管胞的横截面具有圆形形状胞间空间。 原因尚未确定。 然而,我们假设细胞壁粘连的剥落会引起细胞间隔,导致气管横截面呈圆形。 同型半乳糖醛酸,一种果胶,在细胞壁粘附中起作用。 此外,果胶甲基酯酶(PME...
  • LTE-TDD随机接入过程(1)-目的分类

    万次阅读 多人点赞 2016-03-08 16:17:18
    随机接入是UE网络之间建立无线链路的必经过程,只有在随机接入完成之后,eNBUE之间才能正常进行数据互操作( Normal DL/UL transmission can take place after the random access procedure )。UE可以通过随机...
  • uboot配置编译过程详解

    万次阅读 2016-12-03 14:27:05
    我们把前缀后缀分开还有一个原因就是:在不同CPU架构上的交叉编译工具链,只是前缀不一样,后缀都是一样的。因此定义时把前缀后缀分开,只需要在定义前缀时区分各种架构即可实现可移植性。 (3)CROSS_COMPILE...
  • 转自知乎百度百科:从零开始学后期 (色温的奥秘)  文章: 冷暖色区分?冷暖肤色适用于那些色系的彩妆?   文章:干货 |如何判断人体色冷暖?如何判断色彩冷暖?(值得收藏研读!) -蒜苗的回答 百科...
  •  引起机械裂纹的主要原因有两种。第一种是挤压裂纹,它产生在元件拾放在PCB板上的操作过程。第二种是由于PCB板弯曲或扭曲引起的变形裂纹。挤压裂纹主要是由不正确的拾放机器参数设置引起的,而弯曲裂纹主要由元件...
  • 怎样区分中文汉字日文汉字

    千次阅读 2007-10-12 17:01:00
    随着GB2312时代的没落中国官方强制推行的GB18030的消沉,所有人都觉得,无需置疑地Unicode一统天下的时代即将,甚至已经来临了。我也曾经是,现在仍旧是Unicode的推崇者。推崇的理由很简单——在GB2312,ASCII的...
  • 如何区分前端Bug与后端Bug?

    千次阅读 热门讨论 2021-01-26 14:25:52
    对于软件测试过程中的缺陷报告提交,一份高质量的缺陷报告除了必要的基本信息以外,还需要根据项目组中每个角色分工不同, 对待缺陷的定位立场也不同,所以完善且有说服力的缺陷报告非常重要。 温故下之前高质量的...
  • MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,这个字符集对大小写不敏感,因此在比较过程中中文编码字符大小写转换造成了这种现象。 例如: 在mysql中不区分大小写 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 261,431
精华内容 104,572
关键字:

怎样区分原因和过程