当前位置:   article > 正文

软件测试题库知识点总结_软件工程师测试是a测试还是β测试

软件工程师测试是a测试还是β测试

alpha测试和bate测试

1、α测试即为非正式验收测试。

α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可用性、可靠性、性能和支持)。尤其注重产品的界面和特色。

α测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。

2、β测试是给用户进行测试

β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,即发放一部分给用户进行测试,并要求用户报告异常情况、提出批评意见,然后软件开发公司再对β版本进行改错和完善。β测试也是黑盒测试。黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。 ———————————————— 原文链接:alpha测试和beta测试_α测试和β测试_basketballnba的博客-CSDN博客

SQA负责人

supplier quality assurance

供应商质量保证

测试用例的构成因素

测试用例八大要素:用例编号、测试项(所属模块)、用例标题、前置条件、测试输入、操作步骤、预期结果、重要级别。

(15条消息) 测试用例八大要素有哪些?AASDFGASJFK的博客-CSDN博客测试用例主要有哪些元素

单元测试的主要方面

模块接口、局部数据结构、执行路径、错误处理和边界

数据库系统三级模式对应数据库

数据库系统数据库
外模式视图
概念模式(模式)数据表
内模式存储文件

软件测试的目的

软件测试的目的就是评估和验证软件产品或应用程序是否完成了它应该做的事情的过程。尽可能多地找出软件的错误测试的好处包括防止错误、降低开发成本和提高性能。

集成测试

1)非渐增组装测试(非增式集成测试):将单元测试后的模块按照总体的结构图一次性集成起来,然后把连接的整体进行程序测试。 一般用黑盒法来编写测试集并进行测试。 程序错误易出现,不容易集成成果。单元测试使用的辅助模块多,适合于规模小的开发系统。 2)渐增组装测试(增式集成测试):在单元测试的基础上,采用自顶向下或自底向上逐层安装测试,知道最后安装测试完毕。 也可采用自顶向下与自底向上相结合集成测试,单元测试与集成测试相结合来进行集成测试。 将错误分解,容易找到错误并测试成功,适合于大规模的开发系统。

等值分析方法

=等价类划分法+边界值法

测试左移和测试右移

测试左移:

今早开始测试,在软件开发周期早起就与所有干系人合作,不要认为提测才是测试工作的开始

测试右移:

产品上线之后在生产环境做监控

(16条消息) 测试左移与右移小冯先生的博客-CSDN博客测试左移和测试右移

瀑布模型的四个阶段

分析、设计、编码、测试

桩模块和驱动模块

桩模块——自顶向下

驱动模块——自底向上

桩模块的使命除了使得程序能够编译通过之外,还需要模拟返回被代替的模块的各种可能返回值(什么时候返回什么值需要根据测试用例的情况来决定)。

驱动模块的使命就是根据测试用例的设计去调用被测试模块,并且判断被测试模块的返回值是否与测试用例的预期结果相符。

(16条消息) 桩程序和驱动程序的简单理解拜小白的博客-CSDN博客什么是驱动程序和桩程序

PSP 个人软件过程

“个人软件过程(Personal Software Process,PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。

数据库语言SQL四类

DDL

(Data Definition Language 数据定义),定义数据表、视图、索引

CREATE(DATABASE、TABLE)、ALTER(TABLE VIEW)、DROP(VIEW)、TRUNCATE(TABLE)、ADD(column_name())

DML

(Data Manipulation Language 数据操纵语言),数据表的增删查改

SELECT、UPDATE、INSERT、DELETE、ROLLBACK

DCL

(Data Control Language 数据控制语言),用于设置用户权限和控制事务语句 GRANT、DENY、REVOKE

DQL

(Data Query Language),数据表记录的查询

SELECT、 INTO、FROM、WHERE、GROUP BY HAVING、ORDER BY [ASC|DESC]、SHOW

数据模型三要素

数据结构、数据操作、数据约束(完整性约束)

1、数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。不同的数据结构具有不同的操作和约束。

2、数据操作:数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式。

3、数据约束:数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、它们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。

聚合函数

AVG() / SUM() / MIN() / MAX() / COUNT()

只能用于SELECT和HAVING

事务的隔离级别

事务的四大特性分别是:原子性、一致性、隔离性、持久性

幻读和不可重复读都是在同一个事务中多次读取了其他事务已经提交的事务的数据导致每次读取的数据不一致,所不同的是不可重复读读取的是同一条数据,而幻读针对的是一批数据整体的统计(比如数据的个数)

以MYSQL数据库来分析四种隔离级别

第一种隔离级别:Read uncommitted(读未提交) 如果一个事务已经开始写数据,则另外一个事务不允许同时进行写操作,但允许其他事务读此行数据,该隔离级别可以通过“排他写锁”,但是不排斥读线程实现。这样就避免了更新丢失,却可能出现脏读,也就是说事务B读取到了事务A未提交的数据

解决了更新丢失,但还是可能会出现脏读

第二种隔离级别:Read committed(读提交) 如果是一个读事务(线程),则允许其他事务读写,如果是写事务将会禁止其他事务访问该行数据,该隔离级别避免了脏读,但是可能出现不可重复读。事务A事先读取了数据,事务B紧接着更新了数据,并提交了事务,而事务A再次读取该数据时,数据已经发生了改变。

解决了更新丢失和脏读问题

第三种隔离级别:Repeatable read(可重复读取) 可重复读取是指在一个事务内,多次读同一个数据,在这个事务还没结束时,其他事务不能访问该数据(包括了读写),这样就可以在同一个事务内两次读到的数据是一样的,因此称为是可重复读隔离级别,读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务(包括了读写),这样避免了不可重复读和脏读,但是有时可能会出现幻读。(读取数据的事务)可以通过“共享读镜”和“排他写锁”实现。

解决了更新丢失、脏读、不可重复读、但是还会出现幻读

第四种隔离级别:Serializable(可序化) 提供严格的事务隔离,它要求事务序列化执行,事务只能一个接着一个地执行,但不能并发执行,如果仅仅通过“行级锁”是无法实现序列化的,必须通过其他机制保证新插入的数据不会被执行查询操作的事务访问到。序列化是最高的事务隔离级别,同时代价也是最高的,性能很低,一般很少使用,在该级别下,事务顺序执行,不仅可以避免脏读、不可重复读,还避免了幻读 ———————————————— 原文链接:事务的隔离级别_zhouym_的博客-CSDN博客

SMTP、POP3、IMAP

SMTP SMTP (Simple Mail Transfer Protocol),即简单邮件传输协议,默认端口是25,通过SSL协议加密之后的默认端口是465。正如名字所暗示的那样,它其实是一个非常简单的传输协议,无需身份认证,而且发件人的邮箱地址是可以由发信方任意声明的,利用这个特性可以伪造任意发件人。它是用于从源地址到目的地址传输邮件的协议,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP是一个 “推” 的协议,它不允许根据需要从远程服务器上 “拉” 来消息。 SMTP 认证:简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。

POP POP(Post Office Protocol)邮局通讯协议,POP是互联网上的一种通讯协议,主要功能是用在接收电子邮件时。当我们寄信给另外一个人时,对方当时多半不会在线上,所以邮件服务器必须为收信者保存这封信,直到收信者来检查这封信件。当收信人收信的时候,必须通过POP通讯协定,才能取得邮件。

POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,是TCP/IP协议族中的一员,默认端口是110,通过SSL协议加密之后的默认端口是995。POP3协议主要用于支持使用客户端远程管理在服务器上的电子邮件。它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,但是对邮件的操作并不会反馈到邮箱服务器上。

IMAP IMAP (Internet Mail Access Protocol),即交互式邮件存取协议,是一个应用层协议,默认端口是143,通过SSL协议加密之后的默认端口是993。用来从本地邮件客户端,如Outlook Express、Foxmail、Mozilla Thunderbird等访问远程服务器上的邮件。它和POP3类似邮件访问标准协议类似。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。同时,IMAP像POP3那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。此外,IMAP 更好地支持了从多个不同设备中随时访问新邮件。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。也就是说,IMAP提供了比POP3更为强大的功能。

(16条消息) SMTP、POP3和IMAP邮件协议谢公子的博客-CSDN博客邮件pop3和imap

死锁

四个条件

〈1〉互斥条件。即某个资源在一段时间内只能由一个进程占有,不能同时被两个或两个以上的进程占有。这种独占资源如CD-ROM驱动器,打印机等等,必须在占有该资源的进程主动释放它之后,其它进程才能占有该资源。这是由资源本身的属性所决定的。如独木桥就是一种独占资源,两方的人不能同时过桥。
​
〈2〉不可抢占条件。进程所获得的资源在未使用完毕之前,资源申请者不能强行地从资源占有者手中夺取资源,而只能由该资源的占有者进程自行释放。如过独木桥的人不能强迫对方后退,也不能非法地将对方推下桥,必须是桥上的人自己过桥后空出桥面(即主动释放占有资源),对方的人才能过桥。
​
〈3〉占有且申请条件。进程至少已经占有一个资源,但又申请新的资源;由于该资源已被另外进程占有,此时该进程阻塞;但是,它在等待新资源之时,仍继续占用已占有的资源。还以过独木桥为例,甲乙两人在桥上相遇。甲走过一段桥面(即占有了一些资源),还需要走其余的桥面(申请新的资源),但那部分桥面被乙占有(乙走过一段桥面)。甲过不去,前进不能,又不后退;乙也处于同样的状况。
​
〈4〉循环等待条件。存在一个进程等待序列{P1,P2,...,Pn},其中P1等待P2所占有的某一资源,P2等待P3所占有的某一源,......,而Pn等待P1所占有的的某一资源,形成一个进程循环等待环。就像前面的过独木桥问题,甲等待乙占有的桥面,而乙又等待甲占有的桥面,从而彼此循环等待。

软件缺陷的定义

常称为Bug。所谓软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。

开发不认为是BUG的沟通

开发人员说不是bug,有两种情况,

一是需求没有确定,所以可以找产品经理进行确认,评估是否需要改动,三方商量确定好后再看是否要改。

二是这种情况开发认为不可能发生,所以不需要修改,这个时候,我可以先尽可能的说出BUG的依据是什么,如果被用户发现或出了问题,会有什么不良结果。如果还是有分歧,可以将这个问题提出来,跟开发经理和测试经理进行确认,确定是bug的话,一定要坚持自己的立场,让问题得到最后的确认。

测试结束活动

一、关键过程域

在结束活动的过程中,主要需要完成的工作包括:关闭缺陷、提交相关文档和完成项目总结报告。

(1)关闭缺陷

测试结束后需要将所有已解决的缺陷关闭,对于未解决的或解决不了的问题,也需要将缺陷置为正确的状态。

(2)提交相关文档

测试完成后需要将相关的测试文档都提交到文控部门,当然在提交前必须评审通过。

(3)完成项目总结报告

项目测试完成后,需要写一个项目总结报告,一般项目总结报告的主要内容包括本次测试遇到的困难,以及这些困难是如何解决的。但总结报告其实不仅仅是这些内容,更重要的是写本次测试过程中的一些关键数据,如发现多少缺陷、测试时间、缺陷分布等信息,之所以需要写这些信息,目的是方便为以后类似的项目作参考。

二、阶段度量目标

结束活动阶段度量的指标主要包括以下几个方面:

  1. 所有的缺陷都被置为正确的状态;

  2. 相关的测试报告都已经提交;

  3. 完成项目总结报告。

POST与GET的区别

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

常用数据库访问接口

ODBC

ODBC(Open Database Connectivity,开放数据库互连)为访问不同的 SQL 数据库提供了一个共同的接口。ODBC 使用 SQL 作为访问数据的标准。这一接口提供了最大限度的互操作性。一个应用程序可以通过共同的一组代码访问不同的 SQL 数据库管理系统。

一个基于 ODBC 的应用程序对数据库的操作不依赖任何 DBMS,不直接与 DBMS 打交道,所有的数据库操作由对应的 DBMS 的 ODBC 驱动程序完成。也就是说,不论是 MySQL 还是 Oracle 数据库,均可用 ODBC API 进行访问。由此可见,ODBC 的最大优点是能以统一的方式处理所有的数据库。

JDBC

Java Data Base(JDBC,Java 数据库连接)用于 Java 应用程序连接数据库的标准方法,是一种用于执行 SQL 语句的 Java API,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。

ADO.NET

ADO.NET 是微软在 .NET 框架下开发设计的一组用于和数据源进行交互的面向对象类库。ADO.NET 提供了对关系数据、XML 和应用程序的访问,允许和不同类型的数据源以及数据库进行交互。

PDO

PDO(PHP Data Object)为 PHP 访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。PDO 是 PHP 5 新加入的一个重大功能。

SQL书写顺序和执行顺序

书写顺序:

select->distinct->from->join->on->where->group by->having->order by->limit

必须字段:select、from

可选字段:distinct、join、on、where、group by、having、sum、count、max、avg、order by、limit

执行顺序

from->on->join->where->group by(开始使用select中的别名,后面的语句中都可以使用别名)->sum、count、max、avg->having->select->distinct->order by->limit ———————————————— 原文链接:mysql一条语句执行的顺序_SQL执行顺序(以MySQL为准)_低僧的博客-CSDN博客

数据库/关系模式完整性规则

1.实体完整性规则 这个规则要求关系中元组在组成主键的属性上不能有空值,如果出现空值,那么主键值就起不了唯一表示元组的作用。

2.参照完整性规则 如果属性集K是关系模式R1的主键,K也是关系模式的R2的外键,那么在R2的关系中,K的取值只允许两为空值或者等于R1的关系中某个主键值。

这条规则的实质是“不允许引用不存在的实体”,这条规则在具体的使用时,有三点变通:

1)外键和相应的主键可以不同名,只要定义在相同值域上即可;

2)R1和R2也可以是同一个关系模式,此时表示了同一个关系中的不同元组之之间的联系;

3)外键值是否允许空,应视具体问题而定;

3.用户定义完整性规则 在建立关系模式时,对属性定义了数据类型,即使这样可能满足不了用户的需求,此时,用于可以针对具体的数据约束,设置完整性规则,由系统来检验实施,以使用统一的方式处理他们,不再由应用程序承担这项工作。

例如学生的定义为两位数,范围还太大,我们可以写如下规则把年龄限制在15~30岁之间:

CHECK (AGE,BETWEEN,15,AND,30) ———————————————— 原文链接:数据库三类完整性规则_突破边界的博客-CSDN博客

SQL三种连接查询方式

内连接、(左、右、全)外连接、交叉连接

内连接:

select 查询字段 from表1[inner] join 表2 on表1.关系字段=表2.关系字段;(等值连接)

MySQL数据类型

img

(16条消息) 最全MySQL数据类型详解Hard Coder的博客-CSDN博客mysql数据类型详解

视图常用语法

DROP、SELECT(及其子句)、ALTER

SQL注入常见函数

0x01 mysql数据库基本函数 0x02 union联合注入函数 函数concat() 函数concat_ws() 函数group_concat() 0x03 sql盲注函数

  1. 布尔盲注函数 函数length() 函数left()与函数right() 函数substr() 函数mid() 函数ascii() 函数ord()

  2. 时间盲注函数 函数sleep() 函数if() 0x04 报错注入函数 函数floor() 函数exp() 函数updatexml() 函数extractvalue() 0x05 读写文件函数 0x06 其他相关的PHP函数 函数addslashes() 函数stripslashes() 函数get_magic_quotes_gpc() 函数mysql_real_escape_string() ———————————————— 原文链接:sql注入常见函数(附图详解)_sql注入常用函数_君莫hacker的博客-CSDN博客

常用安全测试工具

  1. AppScan 一款安全漏洞扫描工具,支持Web和移动,现在安全测试做漏洞扫描非常适用,它相当于是"探索"和"测试"的过程,最终生成很直观的测试报告,有助于研发人员分析和修复通常安全测试工具用这个,扫描一些安全漏洞,用起来比较方便,网上资料比较多,适合很多测试同学用,资料广阔,大家可以尝试下。 官网:IBM Products 参考:https://www.cnblogs.com/benpao1314/p/8065720.html

  2. Burp Suite 一款信息安全从业人员必备的集 成型的渗透测试工具,它采用自动测试和半自动测试的方式,包含了 Proxy,Spider,Scanner,Intruder,Repeater,Sequencer,Decoder,Comparer等工具模块;Proxy功能可以拦截HTTP/S的代理服务器(手机和web);Spide功能-智能感应的网络爬虫;Intruder功能可以对web应用程序进行自动化攻击等,非常适合做安全测试。通 过拦截HTTP/HTTPS的web数据包,充当浏览器和相关应用程序的中间人,进行拦截、修改、重放数据包进行测试,是web安全人员的一把必备的瑞士军刀。 官网:Burp Suite - Application Security Testing Software - PortSwigger 参考:https://www.cnblogs.com/nieliangcai/p/6692296.html

  3. Acunetix 一款网络漏洞扫描软件,它可以检测网络的安全漏洞。 官网:Acunetix | Web Application Security Scanner

  4. Nmap 一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。 官网:Nmap: the Network Mapper - Free Security Scanner 参考:Nmap 讲解从简到难---01_一杯咖啡的时间的博客-CSDN博客

  5. sqlmap 一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。 官方网站:sqlmap: automatic SQL injection and database takeover tool, 下载地址:https://github.com/sqlmapproject/sqlmap/zipball/master 演示视频:Sample sqlmap run - asciinema 教程:http://www.youtube.com/user/inquisb/videos 参考:超详细SQLMap使用攻略及技巧分享 - FreeBuf网络安全行业门户

  6. OpenVAS 一个开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器。其核心部件是一个服务器,包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题。OpenVas服务端只允许安装在Linux系统上,接下来我们来介绍一下使用二进制搭建OpenVas的方法以及基础的使用。 官网:OpenVAS - Open Vulnerability Assessment Scanner 参考:访问的文章审核中... - FreeBuf网络安全行业门户

  7. msfvenom 参考:MSFvenom - Metasploit Unleashed

  8. fortify 静态代码检查工具 官网:Fortify - README 参考:https://www.cnblogs.com/eyesmoon/p/7421477.html 参考:访问的文章审核中... - FreeBuf网络安全行业门户

  9. Drozer MWR Labs开发的一款Android安全测试框架。是目前最好的Android安全测试工具之一。官网:https://labs.mwrinfosecurity.com/publications/ 参考:https://www.cnblogs.com/lsdb/p/9441813.html

  10. nessus 一款号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus不同于传统的漏洞扫描软件,Nessus可同时在本机或远端上遥控,进行系统的漏洞分析扫描。Nessus也是渗透测试重要工具之一。所以,本章将介绍安装、配置并启动Nessus。 官网:Download Nessus | Tenable® 参考:https://www.cnblogs.com/cheyunhua/p/8084459.html

  11. zap OWASP Zed攻击代理(ZAP)是世界上最受欢迎的免费安全审计工具之一,由数百名国际志愿者*积极维护。它可以帮助您在开发和测试应用程序时自动查找Web应用程序中的安全漏洞。 官网:OWASP ZAP | OWASP Foundation 参考:OWASP ZAP下载、安装、使用(详解)教程 - 付杰博客 ———————————————— 原文链接:11款常用的安全测试工具_系统安全测试工具_Lucas__liu的博客-CSDN博客

接口测试工具

postman、RESTClient、jmeter、loadrunner、SoapUI

(16条消息) 接口测试及常用接口测试工具CC爱测试的博客-CSDN博客接口测试工具

常用接口请求方式

一、Get 向特定资源发出请求(请求指定页面信息,并返回实体主体) 二、Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能致使新的资源的创建或原有资源的修改 三、Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容) 四、Head 与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求相似,返回的响应中没有具体内容,用于获取报头) 五、Delete 请求服务器删除request-URL所标示的资源(请求服务器删除页面) 六、opions 返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(容许客户端查看服务器性能)

适合进行自动化测试的项目

1、需求变动不频繁 2、项目周期较长 3、测试脚本可重复使用

常用自动化工具及其支持语言

Selenium:

Python、C#、JAVA、Perl

Loadrunner:JAVA

支持C、JAVA、VB编写脚本(不支持Python)

Postman(接口测试工具)

支持http/https

Jmeter 监听器

(16条消息) Jmeter - JMeter监听器 -上篇(详解教程)阿里大叔说测试的博客-CSDN博客jmeter监听器

延时等待

1、硬性等待:Thread.sleep(long millis) 硬性等待,线程休眠,强制等待 Thread.sleep(long millis)

不推荐使用,容易造成时间上的浪费,受到网络原因的影响因素太大。 使用场景:页面切换时

2、隐式等待:TimeOuts--implicitlyWait 在设置的超时时间范围内不断的查找元素,直到找到元素或者超时 设置等待时间为5秒,第3秒找到元素,不再继续等待 设置方式 driver.manage().timeouts().implicitlyWait(long time, TimeUnit.SECONDS); 优点:相对灵活 缺点:设置是针对全局的,在WebDriver实例的整个生命周期有效,但是并不是所有的元素都需要等待

3、显式等待(智能等待):WebDriverWait 显示等待通常是我们自定义一段代码,用来等待某个条件发生以后,再继续执行后续的代码(如找到元素、元素可点击、元素已显示) 可以自己指定某个元素需要等待,在有必要进行等待的时候进行等待 默认是0.5秒轮循一次,在dom中查找一次元素 我们可以自己设置期望条件 注意:在自己设置期望条件时,return时不能直接点击该元素,因为返回是webElement时只能说明该元素在dom中间存在,但是能不能点击是不确定的 ———————————————— 原文链接:多种延时等待_Vicky_zy的博客-CSDN博客

抽象类与接口

抽象类可以有abstract方法,单继承

但接口所有方法都是public和abstract的,extend多继承

数据库常见对象

常见的数据库对象有:

: 数据的集合

视图:从表中抽取出来的逻辑相关的数据集

序列:连续的数字

索引:提高查询的效率

同义词: 给表、视图起的别名

表 表可以看做是存储着数据的表格,改表格在物理上储存在表空间里。

表空间是oracle对物理数据库上相关数据的逻辑映射,一个数据库在逻辑上可以被划分为一个或者若干个表空间,每一个表空间包含了在逻辑上相关的一组结构。每一个数据库实例至少有一个表空间(system表空间),每一个表空间有同一磁盘上的一个或多个文件组成,这些文件叫数据文件,一个数据文件只能属于一个表空间。

视图 视图是一种虚拟表,视图是建立在已有的表的基础上,试图赖以建立的这些表称为基表。删除视图不会影响基表的数据。

序列 序列:可供多个用户用来产生唯一数据的数据对象,其作用为自动提供唯一数值、共享对象、主要用户提供主键值、通过将序列值装入内存来提高访问的效率。

索引 和其他地方的索引一样,用来提高查询效率。可自动创建:定义表时 ,在创建主键(primary key)或者唯一性约束(unique)后系统会为其创建一个唯一性索引。也可手动创建:格式如下:

create index 索引名 on 表名(列名);

同义词 当用户需要访问其他用户的对象(如表)的时候,为了简化书写,可以给该对象创建同义词,例如:

create synonym stu for scott.student;

其中 stu 是自己起的名,scott是其他用户,student是该用户的表。 ———————————————— 原文链接:数据库有哪些常见的对象?_数据库各个对象_新人入队的博客-CSDN博客

SQL 语法汇总

MODIFY修改数据类型

ALTER TABLE customer 
MODIFY tax_payer_id varchar(50) null;

组合查询(自动去重)

SELECT cust_name,cust_contact,cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI')
UNION
SELECT cust_name,cust_contact,cust_email
FROM Customers
WHERE cust_name='Fun4ALL';

FOUND_ROWS() 函数

返回的是上一条 SELECT 语句(或 SHOW语句等)查询结果集的记录数

注意是上一条查询语句,而不是上一条SQL

ROW_COUNT() 函数

如果上一条SQL语句不是修改操作语句(INSERT/UPDATE/DELETE 等),而是查询语句(SELECT/SHOW 等)则返回-1。如果是修改操作语句,则返回修改(增/删/该)影响的记录数。

注意,这里是上一条SQL语句(即执行该函数前的上一条SQL语句),和上面有所区别。

(2)如果上一条SQL语句是UPDATE语句,但是UPDATE后所有数据的值并没有改变,则返回 0。

(3)如果上一条SQL语句是建表语句(创建表或临时表),但创建的是空表,则返回 0。

如果是删除表(DROP语句),则返回的还是 0。 ———————————————— 原文链接:MySQL的 FOUND_ROWS() 函数和 ROW_COUNT() 函数_月下泛舟的博客-CSDN博客

表的定义外添加外键

alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);

eg.(将 manuscript 表的 aid 设置为外键对应 author 表的主键 aid )

ALTER TABLE manuscript
ADD CONSTRAINT FK_aid
FOREIGN KEY  (manuscript.aid) REFERENCES author (aid)

GRANT 授权语句

GRANT privilege,[privilege],.. ON privilege_level 
TO user [IDENTIFIED BY password]
[REQUIRE tsl_option]
[WITH [GRANT_OPTION | resource_option]];

//更多请阅读:MySQL授予权限(Grant语句) -MySQL教程

e.g.(将更新SC表的GRADE属性的权限授予ZHAO)

GRANT UPDATE (GRADE) ON SC TO ZHAO

UNIQUE 用法

  • 在 "Persons" 表创建时在 "Id_P" 列创建 UNIQUE 约束:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (Id_P)
)
  • 需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束,

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)

CONSTRAINT 单词意为约束,在后面的uc_PersonID是为这个约束取的名字UNIQUE意思是这个约束类型为唯一型约束,约束的列为Id_PLastName

链接:SQL中 DISTINCT 和 UNIQUE - 简书

unique 和 distinct 都是去重的意思,但他们所用的语句不同

1:unique 可以用于在创建表时或者在修改表的结构时使用

例如:

create table test(sno int not null unique);

或者 alter table test alter unique(sname);

2:distinct则是用于对select 语句使用

例如: select distinct depart from test

———————————————— 原文链接:sql 中unique与distinct 的区别_distinct和unique的区别_一个没有姓名的咸鱼的博客-CSDN博客

EXECUTE 动态执行语句

SQL Execute语法.

一,执行字符串:

EXECUTE语句可以执行存放SQL语句的字符串变量,或直接执行SQL语句字符串。

语法:EXECUTE({@字符串变量|[N]’SQL语句字符串’}[+...n]) 例子:Declare @SQLText Varchar(50) Set @SQLText=’ where sdept=’’计算机系’’’ Execute(‘Select * from Student’+@SQLText)

二,执行存储过程: 使用参数名传递参数值,是通过语句“@参数名=参数值”给参数传递值。 EXECUTE 存储过程名 [@参数名=参数值] [,...n] 例子:Execute SP_DispSC_Dept_Level ’信息系’,’优’

可通过 GRANT语句给用户授予该权限

ALTER语句用法总结

1:删除列

ALTER TABLE 表名 DROP COLUMN 列名

2:增加列

ALTER TABLE 表名 ADD COLUMN 列名 属性 【约束】

3:修改列的类型信息

ALTER TABLE 表名 CHANGE COLUMN 列名 【新】列名

新属性 4:重命名列

ALTER TABLE 表名字 CHANGE COLUMN 列名 新列名 属性

5:重命名表

ALTER TABLE 表名 RENAME TO 表新名

6:删除表中主键

Alter TABLE 表名 DROP primary key

7:添加主键

ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY (添加列)

8:添加索引

ALTER TABLE 表名 ADD index 索引名 (列名);

9:修改列的属性

ALTER TABLE 表名 MODIFY COLUMN 要修改属性的列名 新属性;

———————————————— 原文链接:SQL的alter用法总结_sql alter_帅老派的博客-CSDN博客

DELETE 和 TRUNCATE 对比

DELETE语句可以通过WHERE对要删除的记录进行选择。而使用TRUNCATE TABLE将删除表中的所有记录。因此,DELETE语句更灵活。如果DELETE不加WHERE子句, DELETE可以返回被删除的记录数,而TRUNCATE TABLE返回的是0。如果一个表中有自增字段,使用TRUNCATE TABLE和没有WHERE子句的DELETE删除所有记录后,这个自增字段将起始值恢复成1 ———————————————— 原文链接:truncate和delete的区别_soliderzzz的博客-CSDN博客

内外全连接

(16条消息) SQL语句的内连接,外连接,左连接,右连接,全连接详解例子爱小码的博客-CSDN博客sql 全连接

题库非选专题

测试理论

手机APP的兼容性测试

操作系统、操作系统版本、手机品牌、手机型号、分辨率、网络、应用兼容

图形测试的主要检查点

1.颜色饱和度和对比度是否合适; 2.需要突出的链接的颜色是否容易识别; 3.是否正确加载所有的图形。

什么是单元测试

单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。

什么是集成测试

集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位(模块)之间的接口是否正确。

缺陷的生命周期

面经:发现→提交→指派→研发确认→研发修复→回归验证→关闭

①发现缺陷(记录缺陷报告、提交给程序员) ②打开(程序员修改) ③解决(测试员确认、缺陷已修复/关闭报告) ④关闭

测试人员在软件开发过程中的任务是什么

1、寻找 Bug; 2、避免软件开发过程中的缺陷; 3、衡量软件的品质; 4、关注用户的需求。 总的目标是:确保软件的质量。(有争议)

测试用例的要素

1.用例编号、2.测试模块、3.用例的标题、4.测试级别、5.测试目的和条件、6.测试输入、7.操作步骤、8.预期结果

你提的问题,开发人员说不是BUG时,你如何应付

开发人员说不是bug,有两种情况,一是需求没有确定,所以可以找产品经理进行确认,评估是否需要改动,三方商量确定好后再看是否要改。二是这种情况开发认为不可能发生,所以不需要修改,这个时候,我可以先尽可能的说出BUG的依据是什么,如果被用户发现或出了问题,会有什么不良结果。如果还是有分歧,可以将这个问题提出来,跟开发经理和测试经理进行确认,确定是bug的话,一定要坚持自己的立场,让问题得到最后的确认。

请描述软件缺陷的定义

常称为Bug。所谓软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。

性能测试

LR可以测试手机吗

可以,通过LR设置代理。录制APP脚本即可,与web做性能测试原理相同

简述使用Loadrunner的步骤

制定-开发-设计-执行-监控-分析

制定性能测试计划—>开发测试脚本—>设计测试场景—>执行测试场景—>监控测试场景—>分析测试结果

性能测试的指标

1、并发用户数,同时访问系统的用户数 2、响应时间,指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回结果整个过程所耗费的时间 3、每秒点击数(Hits per Second),客户端每秒向Web服务器发了多少次HTTP请求 3、TPS,每秒处理事务的数量 5、事务成功率,压测过程中成功的事务/总事务。 6、吞吐率,通常指单位时间内从服务器返回的字节数。

Jmeter监听器

1、聚合报告 2、汇总报告 3、查看结果树:对应查看HTTP请求和HTTP响应 4、用表格查看结果 5、图形结果 6、断言结果 7、BeanShell Listener 8、摘要报告

1台客户端有300客户与300客户端有300客户对服务器施压,有什么区别

1.300个用户在一个客户端上,会占用客户机更多的资源,影响测试结果 2.300个用户在一个客户端上,客户端连接数可能出现问题 3.300个用户在一个客户端上,需要更大的带宽 4.ip地址问题,可能需要使用IP SPOOF来绕过服务器对于单一IP地址最大连接数的限制

性能测试的目的是什么

验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的

如果没有明确需求怎么收集性能测试需求数据

客户没有给出相关性能指标或性能指标不明确,①.若业务属于已运营业务,已有历史数据,利用历史数据分析,得出指标;②若业务属于新业务,没有历史数据,可以参考同行相关业务数据进行分析,得出指标;③.若此业务属于新兴行业业务,以往没有同类业务的数据,只有凭借经验以及系统类型进行分析,得出指标了

性能测试包含了哪些测试(至少举出3种)?

压力测试、负载测试、并发测试、强度测试、大数据量测试。

计时器(Timer)在JMeter中的作用是什么?

在计时器的帮助下,JMeter可以延迟线程发出的每个请求之间的时间,它可以解决服务器的过载问题。

负载测试

负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。 重点体现是:不断的加压,考量不同压力下的系统状况

压力测试

压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。 重点体现是:在最大压力下,系统的表现情况

并发测试

并发测试是测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题,所以几乎所有的性能测试都会涉及一些并发测试。因为并发测试对时间的要求比较苛刻,通常并发用户的模拟都是借助于工具,采用多线程或多进程方式来模拟多个虚拟用户的并发性操作。LoadRunner 工具有一个集合点的概念,它就是用来模拟并发的,可以在VuGen中设置集合点,在Controller中设置其对应的策略来模拟用例设计的场景。

容量测试

容量测试是在一定的软、硬件条件下,在数据库中构造不同数量级的记录数量,通过运行一种或多种业务场景,在一定虚拟用户数量的情况下,获取不同数量级别的性能指标,从而得到数据库能够处理的最大会话能力、最大容量等。系统可处理同时在线的最大用户数,通常和数据库有关。

可靠性测试

可靠性测试是通过给系统加载一定的业务压力(如CPU资源在70%~90%的使用率)的情况下,运行一段时间,检查系统是否稳定。因为运行时间较长,所以通常可以测试出系统是否有内存泄露等问题。 在实际的性能测试过程中,也许用户经常会碰到要求7 × 24小时,稳定运行的系统性能测试需求,对于这种稳定性要求较高的系统,可靠性测试尤为重要,但通常一次可靠性测试不可能执行1年时间,因此在多数情况下,可靠性测试是执行一段时间,如24小时、3 × 24小时或7 × 24小时来模拟长时间运行,通过长时间运行的相关监控和结果来判断能否满足需求,平均故障间隔时间(MTBF)是衡量可靠性的一项重要指标。

恢复测试

恢复测试主要检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。恢复测试首先要采用各种办法强迫系统失败,然后验证系统是否能尽快恢复。

性能测试工具

HP LoaderRunner Neoload JMeter Locust Gatling

列出几个常用的性能指标响应时间,并发用户数,吞吐量,性能计数器,TPS
loadrunner如何录制web脚本利用virtual User Generator录制测试脚本,录制步骤: 1.选择合适的协议-Web(Http/HTML) 2.设置录制选项(HTML-based Script/URL-based Script) 3.开始录制
如何估算日常中平均用户并发量平均用户并发量C=nL/T n为平均每日访问量 L为用户平均访问时常 T为考察时间(即一天有多少时间内存在用户在访问)
如何估算日常中用户并发量的峰值用户并发量峰值Cmax=C+3*根号C C为平均用户并发量
解释计时器(Timer)在JMeter中的作用是什么?在计时器的帮助下,JMeter可以延迟线程发出的每个请求之间的时间。它可以解决服务器的过载问题。
JMeter提供性能测试方面的优势?它可以用于测试静态资源和动态资源的性能; 它可用于测试网站最大并发用户数,从而分析定位网站性能瓶颈; 它提供了性能报告的图形化分析
什么是稳定性测试?在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。
什么是响应时间?用户发送一个请求到用户接收到服务器的响应数据这段时间就是响应时间
什么是资源利用率?指的是对不同系统资源的使用程度,通常以占用最大值的百分比来衡量
什么是并发用户数?某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以是不同场景或功能(可对服务器产生压力)
什么是在线用户数?某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求
有验证码的功能,怎么做性能测试?1、将验证码暂时屏蔽,完成性能测试后,再恢复 2、使用万能的验证码
性能测试需求哪里来?1.客户提供需求 2.运维提供需求(负责服务器的稳定性) 3.开发提供需求
某受理系统的一月受理单量是100万单,如何评估受理的性能测试结果是否达标,或者说如何设定性能测试结果目标建议采用二八原则,80%的业务量在20%时间内计算tps
如何确定系统的最佳用户数?保证TPS满足需求的前提下,能处理的最大用户数
简要说下并发用户数是怎么确定的?1)会先上线一段时间,根据收集到的用户访问数据进行预估 2)根据需求来确定(使用高峰时间段,注册用户数,单次响应时间等
性能测试中有哪些性能问题?响应时间过长;tps过低;tps毛刺过多;tps经常出现断崖式下跌;内存溢出;CPU利用率过高

MySQL数据库

service mysql restart该命令的效果是?重启mysql数据库
MySQL 如何优化 DISTINCT?DISTINCT 在所有列上转换为 GROUP BY,并与 ORDER BY 子句结合使用。
LIKE 声明中的 % 和 _ 是什么意思 ?% 对应于 0 个或更多字符,_ 只是 LIKE 语句中的一个字符。
如何获取当前的 MySQL 版本 ?SELECT VERSION ( ) ; 用于获取当前 MySQL 的版本。
有如下成绩表,表名sc,字段:s_id(学生编号)、c_id(科目编号)、score(成绩) 如何查出平均成绩>=60分的学生编号,和平均成绩?SELECT s_id,avg(score) 平均成绩 FROM sc GROUP BY s_id having avg(score) >= 60;
索引有哪些优缺点?索引的优点: 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。 索引的缺点: 时间方面:创建索引和维护索引要耗费时间. 具体地,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,会降低增/改/删的执行效率; 空间方面:索引需要占物理空间。
修改 表a 增加一列 num 整数alter table a add column num int;
什么是数据库事务?数据库的事务:事务即用户定义的一个数据库操作序列,这些操作要么全做要全不做,是一个不可分割的工作单位,它具有四个特性,ACID,原子性,一致性,隔离性,持续性。
如何查询mysql数据库t_student_info表中,年龄大于18岁的前10条记录?select * from t_student_info where age>18 limit 10 ;
如何给t_student_info表的学号(sno)字段增加索引?create index snoIndex on t_student_info(sno); alter table t_student_info add index snoIndex(sno);
如何查询t_student_info表中telephone字段为空值的记录?Select * from t_student_info where telephone is null;
查找数据库表tableA中,关键字comm1的重复记录select comm1 from tableA group by comm1 having count(comm1)>1
如何获取当前日期(如:yyyymmdd)select CONVERT (nvarchar(12),GETDATE(),112)
oracle中的 NVL函数,在mySQL中能否使用,不能的话用什么函数替代不能,MYSQL中用 IFNULL替代
如何显示前50行?SELECT*FROM LIMIT 0,50;
实践中如何优化MySQL?1.SQL语句及索引的优化 2. 数据库表结构的优化 3.系统配置的优化 4.硬件的优化
已知成绩表,包括学号、成绩;要求查询两门或两门以上的课程不及格(60分为及格)的学生学号?Select 学号 from 成绩表 where 成绩<60 Group by 学号 Having Count(成绩)>1;
如何查看表结构?desc 表名;
如何查看库中的所有表?show tables ;
索引的优点?加快对数据的检索。
索引的缺点?1. 减慢数据 录 入的速度; 2.增加了数据 库 的尺寸大小
MySQL客户端与MySQL服务器通信的协议有哪三种?1 TCP/IP 2 socket 3 命名管道
Mysql中有哪几种锁?1.表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 2.行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 3.页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。
CHAR和VARCHAR的区别?1.CHAR和VARCHAR类型在存储和检索方面有所不同 2.CHAR列长度固定为创建表时声明的长度,长度值范围是1到255 当CHAR值被存储时,它们被用空格填充到特定长度,检索CHAR值时需删除尾随空格。
存在学生表student字段(STU_ID,NAME,SEX,AGE),如下: student: STU_ID NAME SEX AGE 1 张三 男 10 2 李四 女 8 3 王五 男 12 1、请查询出性别为男,且年纪在11岁以上的记录 2、按性别统计学生数量1、select * from student where sex='男' and age>11; 2、select sex,count(1)from student group by sex;
sql语句关键词的执行顺序?1、FROM 子句, 组装来自不同数据源的数据 2、WHERE 子句, 基于指定的条件对记录进行筛选 3、GROUP BY 子句, 将数据划分为多个分组 4、使用聚合函数进行计算 5、使用 HAVING 子句筛选分组 6、计算所有的表达式 7、使用 ORDER BY 对结果集进行排序 即:from—>where—>group by—>having—>计算所有的表达式—>order by—>select输出
表与表之间有哪些关联关系?一对一(实际上是特殊的一对多) 一对多 多对多,需要中间关系表
数据库有哪几种约束类型?数据库有五种约束类型,分别是: 主键约束 PRIMARY KEY 外键约束 FOREIGN KEY 唯一约束 UNIQUE 检查约束 CHECK 非空约束 NOT NULL
drop、delete 与 truncate 的区别:drop table 表名; -- 用于删除数据表。 truncate table 表名; -- 用于删除数据表的数据,但保留表结构。 delete from 表名 [where 条件]; -- 用于删除数据标的数据,但保留表结构,可回滚。
介绍下union和union all的区别union方式不会有重复记录,unionall存在重复记录
通过adb命令安装及卸载apk安装包adbinstall安装包名称apk adb uninstall包名
与 Oracle 相比,Mysql 有什么优势?Mysql 是开源软件,随时可用,无需付费。 Mysql 是便携式的 带有命令提示符的 GUI 使用 Mysql 查询浏览器支持管理
视图的优点?(1) 视图能够简化用户的操作 (2) 视图使用户能以多种角度看待同一数据; (3) 视图为数据库提供了一定程度的逻辑独立性; (4) 视图能够对机密数据提供安全保护
selenium 中 driver.maximize_window() 的作用是?将浏览器最大化
selenium 中 driver.implicitly_wait() 的作用是?设置隐式时间等待。
在进入某个页面后有弹窗提示,可以用什么函数来处理?driver.switch_to_alert()
XPath中使用单斜杠和双斜杠有什么区别?如果XPath是从文档节点开始,它将允许创建“绝对”路径表达式。 例如 “/ html / body / p”匹配所有的段落元素。 如果XPath在文档中的任意位置开始进行选择匹配,那么它将允许创建“相对”路径表达式。 例如 “// p”匹配所有的段落元素。
如何模拟浏览器的前后移动?driver.navigate().back(); driver.navigate().forward();
如何清除中文本框的内容使用clear()方法。 如:driver.findElement(By.xpath(“xpath of box”)).clear();

安全测试

DDoS攻击

分布式拒绝服务(Distributed Denial of Service,简称DDoS)将多台计算机联合起来作为攻击平台,通过远程连接利用恶意程序,对一个或多个目标发起DDoS攻击,消耗目标服务器性能或网络带宽,从而造成服务器无法正常地提供服务。 

(16条消息) 什么是 DDos 攻击Ruo_Xiao的博客-CSDN博客ddos攻击

XSS攻击

1、跨站脚本攻击(前端注入) 2、注入攻击的本质,是把用户输入的数据当做前端代码执行,设置cookie操纵浏览器。 3、这里有两个关键条件: 第一个是用户能够控制输入; 第二个是原本程序要执行的代码,拼接了用户输入的数据。 4、SQL注入拼接的是操作数据库的SQL语句。XSS拼接的是网页的HTML代码,一般而言我们是可以拼接出合适的HTML代码去执行恶意的JS语句(总结:XSS就是拼接恶意的HTML) ———————————————— 原文链接:https://blog.csdn.net/m0_55854679/article/details/123028852

自动化测试

selenium

定位iframe元素

不能直接定位iframe里的元素,要先driver.switch_to.frame(0),然后再定位元素

后面的0代表跳转到第一个iframe,如果页面有多个iframe,需要看看这个元素所在iframe是第几个,如果是第二个,就修改成1

问题解决。

元素定位方法

八种定位方式:id,name,class name,tag name,link text,partial link text,xpath,css selector。其中id,name,class name,tag name是根据元素的标签或元素的属性来进行定位;link text,partial link text是根据超链接的文本来进行定位;xpath为元素路径定位;css为选择器定位(样式定位)。 ———————————————— 原文链接:selenium 八种定位元素的方式_selenium定位元素的方法_王大傻0928的博客-CSDN博客

状态码

2xx (成功)

表示成功处理了请求的状态码。

  • 200(成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。如果是对您的 robots.txt 文件显示此状态码,则表示 Googlebot 已成功检索到该文件。

4xx(请求错误)

这些状态码表示请求可能出错,妨碍了服务器的处理。

  • 400(错误请求) 服务器不理解请求的语法。

  • 401(未授权) 请求要求身份验证。对于登录后请求的网页,服务器可能返回此响应。

  • 403(禁止) 服务器拒绝请求。如果您在 Googlebot 尝试抓取您网站上的有效网页时看到此状态码(您可以在 Google 网站管理员工具诊断下的网络抓取页面上看到此信息),可能是您的服务器或主机拒绝了 Googlebot 访问。

  • 404(未找到) 服务器找不到请求的网页。例如,对于服务器上不存在的网页经常会返回此代码。

5xx(服务器错误)

这些状态码表示服务器在处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。

  • 503(服务不可用) 服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。

———————————————— 原文链接:常见状态码详细讲解_常见的状态码_New globe的博客-CSDN博客

测试工具

常用白盒测试工具

答题技巧;Jtest、Junit、Gtest、Cppunit、Phpunit

1、jtest java语言的单元测试框架 2、JUnit 验证java的工具 3、cppunit 跨平台的c++单元测试框架 4、gtest 跨平台的c++单元测试框架 5、PhpUnit Php 6、BoundsChecker C++,Delphi API和OLE错误检查、指针和泄露错误检查、内存错误检查 7、TrueTime C++,Java,Visual Basic 代码运行效率检查、组件性能的分析

常用性能测试工具

LoadRunner、Jmeter、WebLoad、Neoload

1、loadrunner,大而全,要学精通还是有点难度,重量级工具

2、jmeter 基于java平台的性能开源测试工具,其实也很强大,而且比较好用

3、Web bench 一个简单的web基准指标测试工具

4、Load UI,一款开源的压力测试工具,支持图形化

5、httperf 一款高性能的web性能测试工具

6、Siege 一款开源的压力和指标测试工具

7、NeoLoad

常用接口测试工具

LoadRunner、jmeter、Postman、SoapUI

1、postman

2、Jmeter

3、SoapUI

4、LoadRunner

常用安全测试工具

1、Nmap

2、burp suite

3、Metasploit

4、Acunetix

常用Web自动化测试工具

QTP、Selenium、Robot Framework

1、QTP

2、Robot Framework

3、Selenium

MySQL与 SQL Server的语法区别

  • MySQL不支持全连接(FULL OUTER JOIN)、TOP()、

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/123185
推荐阅读
相关标签
  

闽ICP备14008679号