Web自动化测试面试

 

一、Web 自动化测试

1.Selenium 中 hidden 或者是 display = none 的元素是否可以定位到?
不能,可以写 JavaScript 将标签中的 hidden 先改为 0,再定位元素
 
 
2.Selenium 中如何保证操作元素的成功率?也就是说如何保证我点击的元素一
定是可以点击的?
1. 添加元素智能等待时间 driver.implicitly_wait(30)
2. 添加强制等待时间(比如 python 中写 sleep)
3. try 方式进行 id,name,clas,x path, css selector 不同方式进行定位,如
果第一种失败可以自动尝试第二种
 
 
3.如何提高 Selenium 脚本的执行速度?
代码优化,多任务,分布式部署都是可以提升脚本执行速度的。
 
 
4.用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次
就没办法通过了,如何去提升用例的稳定性?
1. time.sleep( )
2. driver.implicitly_wait(30)
3. 多用 try 捕捉,处理异常
 
 
5.你的自动化用例的执行策略是什么?
自动化测试与软件开发本质上是一样的,利用自动化测试工具,经过测试需求分
析,设计出自动化测试用例,从而搭建自动化测试的框架,设计与编写自动化脚
本,验证测试脚本的正确性,最终完成自动化测试测试脚本(即主要功能为测试
的应用软件)并输出测试结果
 
 
6.自动化测试的时候是不是需要连接数据库做数据校验?
从数据库层面来进行数据校验可以更方便验证系统的数据处理方面是否正确,数
据处理逻辑正常后,UI 层面上的校验也是需要做的。
 
 
7.id,name,class,xpath, css selector 这些属性,你最偏爱哪一种,为什么?
css 、xpath 几乎所有的元素都可以定位到,但是它们的短处在于页面上更改了
元素后位置很容易改变,所以首先使用的还是 id 或者 name 等。
 
 
 
8.如何去定位页面上动态加载的元素?
触发动态加载元素的事件,直至动态元素出现,进行定位
 
 
9.如何去定位属性动态变化的元素?
xpath 或者 css 通过同级、父级、子级进行定位
点击链接以后,Selenium 是否会自动等待该页面加载完毕?
会的
 
 
10.什么是 page object 设计模式?
简单来说,就是把页面作为对象,在使用中传递页面对象,来使用页面对象中相
应的成员或者方法,能更好的体现面向对象语言(比如 java 或者 python)的面
向对象和封装特性。
 
 
11.如何在定位元素后高亮元素(以调试为目的)?
用 JavaScript 等脚本来重置元素属性,给定位的元素加背景、边框
 
 
12.什么是断言?
断言的英文是 assertion,断言检查的英文是 assertion checking。
断言是指定一个程序必须已经存在的状态的一个逻辑表达式,或者一组程序变量
在程序执行期间的某个点上必须满足的条件。
 
 
13.你觉得自动化测试最大的缺陷是什么?
1. 不稳定
2. 可靠性
3. 不易维护
4. 成本与收益
 
 
14.Webdriver 可以用来做接口测试吗?
接口测试有现成的模块来处理,WebDriver 是用于做 WebUI 自动化测试的。如果
要实现接口测试,可以使用 Requests 模块来实现
 
 

二、APPUI 自动化测试

1.Android APP 内存不足时, 系统如何结束进程获得内存?
系统优先结束被挂起(暂停)的进程,释放内存
 
 
2.APP 测试常见的严重问题有哪些? 分别引起的原因有哪些?
常见的有 crash、ANR(应用无响应、卡死),一般由设备碎片化、网络波动大、内存泄
漏、代码编写错误
 
 
3.请简单介绍你曾使用过的一款 APP 自动化测试工具 ?
开放性问题,带点主观意见
1.对比其他熟悉的自动化工具的优缺点
2.自动化的简要方案(简要的同时关键内容请具体)。(提示: appnium 等)
 
 
4.Android 测试与 web 测试有什么区别?
相同点:
1.设计测试用例均依据等价类、边界值等方法,测试原理相同;
2.大多数都采用黑盒测试方法来验证业务功能;
3.需要检查界面布局、风格和按钮是否美观、统一等(UI 测试);
4.测试页面载入和翻页的速度、登录时长是否溢出等问题(性能测试)
5.测试应用系统的稳定性;
不同点:
1.手机作为通信工具,通信等一些行为会对 APP 产生(中断测试)
2.手机用户对 app 产品的安装卸载操作:从上一版本/上两个版本直接升级到最新
版本(安装卸载测试);
3.web 自动化测试使用的工具较常用的是 selenium,而 android 手机自动化测试比
较常用的自动化工具是 monkey、monkeyrunner、Appium(测试工具不一样)
 
 
5.app 测试有哪几种环境?
1. 本地环境: app 安装的手机环境和电脑搭建的自动化测试环境(比如安卓 SDK 等
等) 。
2. 服务器环境:war 包部署的服务器,服务器可以通过浏览器访问,(访问的是 web 程序的接口)
 
 
6.简单介绍一下 Android SDK 的安装步骤:
1. 下载 jdk 和安卓 sdk
2. 安装 jdk, 配置环境变量(java_home、 classpath、 path)
 
 
7.请简要介绍一下移动应用及其服务端的测试点?
1. 移动应用主要有权限、安装运行卸载、UI、功能、性能、中断、兼容性、安全性、
回归、升级更新、用户体验。(app 的 11 大测试点)
2. 服务端有接口测试、性能测试、安全测试。
 
 
8.如何判断 app 的 bug 是客户端问题还是后台问题
这个要根据业务来,一般数据的问题前端的问题多些,一般做法是有问题提给前端开发,
他们知道是他们自己的问题还是后台返回的数据问题。
 
 
9.安卓中如何取出日志信息?
1. 把安卓系统日志信息实时导入到本地: adb logcat -v time > d:\mylog.log
2. 运行使用某个 app,实时获取该 app 的日志信息(cmd 里面的返回信息) :
adb shell monkey -p com.android.calendar -v 1000 > d:\mylog2.log
 
 
10.常见的 adb 命令:
1. 查看当前连接的设备: adb devices
2. 安装软件: adb install 路径\xx.apk
3. 卸载软件: adb uninstall <包名>
4. 从电脑上发送文件到设备: adb push <本地路径> <远程路径>
adb push C:\test1.txt /sdcard/
5. 从设备上下载文件到电脑: adb pull <远程路径> <本地路径>
adb pull /sdcard/test1.txt D:
6. 实时获取日志: adb logcat -v time > D:\mylog.log
7. 登录终端设备 shell: adb shell
8. 查找包名/活动名: adb logcat | findstr START
(脚本中, cmp= 后面的值就是 包名/activity 名称)
9. 启动 APP
adb shell am start -n packageName/activity
10. 关闭 app
语法: adb shell am force-stop 包名
11. 监控 APP 启动时间
adb shell am start -W packageName/activity
12. Monkey 命令:
adb shell monkey -v -p mypackage 50
 
 
11.APP 这么多主流机型如何测试 ?
我们公司就买了,魅族,华为,小米, iphone7、 iphone8 、 iphone8plus 、 iphone
x 测试兼容性,有些没有的机型,先借用同事的手机进行测试,同时申请公司购买,或者采
用云真机。
 
 
12.App 崩溃(闪退),可能是什么原因导致的?
缓存垃圾过多:由于安卓系统的特性,如果长时间不清理垃圾文件.会导致越来越卡.也
会出现闪退情况.
运行的程序过多,导致内存不足
应用版本兼容问题:如果应用版本太低,会导致不兼容,造成闪退。此外,有些新版本
在调试中,也会
造成应用闪退。解决方法:如果是版本太旧,更新为新版本即可;如果是新版本闪退,
可能是应用在改版调
试,可卸载后安装旧版。
检查 APP 中访问网络的地方,组件中的 ImageView 是否可以正常的下载并显示到 app
页面上。
检查 APP 的 sdk 和手机的系统是否兼容。
在一些特定情况下的闪退,比如播放视频,在 Android5.0 升级到 Android6.0 的时候,
有些系统 API 老版本
有,新版本没有,到时回去对象的时候失败,报空,系统就会出现闪退
 
 
13.Appium 都有哪些启动方式
1.客户端启动
2.命令行启动
 
 
14.请简单介绍一下使用过的安卓 UI 自动化测试工具?
参考答案:appium:是一个移动端的自动化框架,可用于测试原生应用,移动网页应用
和混合型应用,且是跨平台的。robotium:是一款国外的 Android 自动化测试框架,主要针
对 Android 平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作
动等)、查找和断言机制的 API,能够对各种控件进行操作。
 
 
15.请说明 Android 手机和 IOS 手机,系统有什么区别?
1 . 两者运行机制不同:IOS 采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。
2 . 两者后台制度不同:IOS 中任何第三方程序都不能在后台运行;安卓中任何程序都
能在后台运行,直到没有内存才会关闭。
3 . IOS 中用于 UI 指令权限最高,安卓中数据处理指令权限最高。
 

接口自动化测试

16.按你的理解,软件接口是什么?
答:
就是指程序中具体负责在不同模块之间传输或接受数据的并做处理的类或者函数。
 
 
17.HTTP 和 HTTPS 协议区别?
答:
https 协议需要到 CA(Certificate Authority,证书颁发机构)申请证书,一般免费证书
较少,因而需要一定费用;
http 是超文本传输协议,信息是明文传输,Https 协议是由 SSL+Http 协议构建的可进行加
密传输、身份认证的网络协议,比 http 协议安全;
http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443;
 
 
18.HTTPS 在哪一层?
以前我面试很喜欢提网络协议的问题,有朋友说我装 X,不实用。稍有点研究网络知识,实
际就不难回答
答:HTTPS 在应用层。
 
 
19.get 和 post 区别是什么?
答:POST 和 GET 都是向服务器提交数据,并且都会从服务器获取数据。
区别:
1)传送方式:get 通过地址栏传输,post 通过报文传输
2)传送长度:get 参数有长度限制(受限于 url 长度),而 post 无限制
3)GET 产生一个 TCP 数据包(对于 GET 方式的请求,浏览器会把 http header 和 data 一并
发送出去,服务器响应 200 返回数据),POST 产生两个 TCP 数据包(对于 POST,浏览器先
发送 header,服务器响应 100 continue,浏览器再发送 data,服务器响应 200 ok 返回数
据)
4)get 请求参数会被完整保留在浏览历史记录里,而 post 中的参数不会被保留
5)在做数据查询时,建议用 GET 方式;而在做数据添加、修改或删除时,建议用 post 方式
 
 
20.常见的 POST 提交数据方式
答:
主要有四种方式:application/x-www-form-urlencoded、multipart/form-data、
application/json、text/xml 等。
 
 
21.什么是 Http 协议无状态协议?怎么解决 HTTP 协议无状态协议
答:
无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服
务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会
记录任何信息。HTTP 是一个无状态协议,这意味着每个请求都是独立的,Keep-Alive 没能
改变这个结果。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导
致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。HTTP
协议这种特性有优点也有缺点,优点在于解放了服务器,每一次请求“点到为止”不会造成
不必要连接占用,缺点在于每次请求会传输大量重复的内容信息。客户端与服务器进行动态
交互的 Web 应用程序出现之后,HTTP 无状态的特性严重阻碍了这些应用程序的实现,毕竟
交互是需要承前启后的,简单的购物车程序也要知道用户到底在之前选择了什么商品。于是,
两种用于保持 HTTP 连接状态的技术就应运而生了,一个是 Cookie,而另一个则是 Session。
 
 
22.cookie 和 session 的区别
答:
cookie 数据存放在客户的浏览器上,session 数据放在服务器上
cookie 不是很安全,别人可以分析存放在本地的 cookie 并进行 cookie 欺骗,考虑到安全
应当使用 session
session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑
到减轻服务器性能方面应当使用 cookie
单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 20 个 cookie
可以将登陆信息等重要信息存放为 session;其他信息需要保存,可以放在 cookie
 
 
23.请求接口中常见的返回状态码
 
1xx -- 信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个 1xx
响应)
2xx -- 成功(表明服务器成功地接受了客户端请求)
3xx -- 重定向(客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请
求服务器上的不同的页面,或通过代理服务器重复该请求)
4xx -- 客户端错误(发送错误,客户端有问题。例如,客户端请求不存在的页面,客户端
未提供有效的身份证验证信息)
5xx -- 服务器错误(服务器由于遇到错误而不能完成该请求)
常见的返回码有:
 
200 OK - [GET]:服务器成功返回用户请求的数据
 
201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功
 
202 Aceepted - [*]:表示一个请求已经进入后台排队(异步任务)
 
204 NO CONTENT - [DELETE]:用户删除数据成功
 
400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行
新建或修改数据的操作
 
401 Unauthorized -[*] :表示用户没有权限(令牌、用户名、密码错误)
 
403 Forbidden -[*] :表示用户得到授权(与 401 错误相对),但是访问被禁止
 
404 NOT FOUND -[*]:用户发出的请求针对得到是不存在的记录,服务器没有进行操作,
该操作是幂等的
 
406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求 JSON 格式,但
是只有 XML 格式)
 
500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是
否成功
 
 
24.什么是 DNS?
答:DNS 是域名系统 (Domain Name System),DNS 是用来做域名解析的,它会在你上网输入
网址后,把它转换成 IP,然后去访问对方服务器;没有它,你想上百度就要记住百度的 IP,
但有了 DNS 的处理,你只需要记住对应网站的域名,即网址就可以了。
 
 
25.请问你们公司是如何做接口测试的?
答:
接口测试实际跟一般测试不同就是测试用例的设计部分。
①获取接口规范。
②设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求,用例设计就是黑
盒用例那一套)。
③各种入参验证(正常情况,异常情况包括输入参数个数不对,类型不对,可选/必选,还
有考虑参数有互斥或关联的情况)。
④接口返回值各种验证(符合接口文档需求)
⑤了解接口实现逻辑,实现逻辑覆盖(语句/条件/分支/判定/…)
⑥接口能并发执行吗、安全吗,性能满足要求吗?
⑦采用工具或者自写代码来验证。
⑧发现问题跟功能测试一样,该报 bug 报 bug,该跟踪状态的跟踪状态。
 
 
 
26.怎么设计接口 测试 用例?
答:
通常,设计接口测试用例需要考虑以下几个方面:
①是否满足前提条件
有些接口需要满足前提,才可成功获取数据。常见的,需要登录 Token
逆向用例:针对是否满足前置条件(假设为 n 个条件),设计 0~n 条用例
②是否携带默认值参数
正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值,
其他不填写,设计 1 条用例
③业务规则、功能需求
这里根据时间情况,结合接口参数说明,可能需要设计 N 条正向用例和逆向用例
④参数是否必填
逆向用例:针对每个必填参数,都设计 1 条参数值为空的逆向用例
⑤参数之间是否存在关联
有些参数彼此之间存在相互制约的关系
⑥参数数据类型限制
逆向用例:针对每个参数都设计 1 条参数值类型不符的逆向用例
⑦参数数据类型自身的数据范围值限制
正向用例:针对所有参数,设计 1 条每个参数的参数值在数据范围内为最大值的正向用例
 
 
27.你做接口测试,测什么?
答:
可用性测试
根据约定的协议、方法、格式内容,传输数据到接口经处理后返回期望的结果:
 
接口功能是否正确实现;
 
返回值测试 - 返回值除了内容要正确,类型也要正确,保证调用方能够正确地解析;
 
参数值边界值、等价类测试;
错误和异常处理测试
 
输入异常值(空值、特殊字符、超过约定长度等),接口能正确处理,且按预期响应;
 
输入错误的参数,接口能正确处理,并按预期响应;
 
多输入、少输入参数,接口能正确处理,且按预期响应;
 
错误传输数据格式(如 json 格式写成 form 格式)测试;
安全性测试,主要指传输数据的安全性:
 
敏感数据(如密码、秘钥)等是否加密传输;
 
返回数据是否含有敏感数据,如用户密码、完整的用户银行账号信息等;
 
接口是否对传入的数据做安全校验,如身份 ID 加 token 类似校验;
 
接口是否防止恶意请求(如大量伪造请求接口致使服务器崩溃);
性能测试,如接口的响应时间、并发处理能力、压测处理情况:
 
并发请求相同的接口(特别为 POST 请求),接口的处理情况(如插入了相同的记录导致
数据出错,引发系统故障);
 
 
接口响应时长在用户可忍受的范围内;
 
对于请求量大的接口做压测,确定最大的瓶颈点是否满足当前业务需要;
 
 
28.平常用什么工具测接口的?
答:常用 http 协议接口测试工具,如:postman、fiddler、jmeter;webService 接口用 SoapUI、
jmeter 等。
 
 
29.没有接口文档,如果做接口测试?
本题主要考情商,通俗来说就是忽悠能力,先唬住面试官了再说,进去了也是瞎测测,随时
做好背锅的准备,当然,你肯定不能回答面试官不测(心理 mmp,脸上笑嘻嘻),接下来就是
扯犊子时间
答: 用抓包工具把接口抓取处理,然后针对性进行测试;接口中字段信息不清楚的,找时间
集中寻求开发解答。(常用抓包工具 Fiddler、Charles 等)
 
 
30.在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理?
答:用一个全局变量来处理依赖的数据,比如登录后返回 token,其它接口都需要这个 token,
那就用全局变量来传 token 参数。
 
 
31.依赖于第三方数据的接口如何进行测试?
答:mock
接着面试官会问你,如果 mock 的,然后你就顺着坑继续挖,搭建 mock 服务,参考这篇
http://www.51ste.com/share/det-485.html
 
 
32.接口测试中,依赖登录状态的接口如何测试?
答:依赖登录状态的接口的本质上是在每次发送请求时需要带上 session 或者 cookie 才能
发送成功,在构建 POST 请求时添加必要的 session 或者 cookie
 
 
33.如何模拟弱网做测试?
答:Fiddler 和 charles 都可以模拟弱网测试,平常说的模拟丢包,也是模拟弱网测试。具
体可以看 《几种弱网模拟方法,总有一种适合你》
 
 
34.你平常做接口测试的过程中发现过哪些 bug?
面试官出这个题,主要是想知道你是不是真的做过接口测试,毕竟现在很多小伙伴简历经过
包装(不包装连面试机会都没有,没办法,为了生存,能理解)
答:
常规错误,接口没实现,没按约定返回结果,边界值处理出错等。
输入异常值(空值、特殊字符、超过约定长度等),接口抛错,没做封装处理;
输入错误的参数、多输入、少输入参数,接口可能出现的错误;
安全性问题,如明文传输、返回结果含有敏感信息,没对用户身份信息做校验,没做恶意请
求拦截等;
性能问题,如接口并发插入多条相同操作,响应时间过长,接口压测出现瓶颈等;
 
 
35.当一个接口出现异常时候,你是如何分析异常的?
答:
先抓包,用 fiddler(charles)工具抓包,或者浏览器上 F12 调试工具;APP 上的话,那就
用 Fiddler 做代理,通过手机设置代理去看请求和返回报文;
查看后端日志,如 Linux 系统通过 xhell 连上服务器,查看接口日志,查看是否有报错信息
(命令:tail -f 日志文件);
 
 
36.如何分析一个 bug 是前端还是后端的?
答:
平常提 bug 的时候,前端开发和后端开发总是扯皮,不承认是对方的 bug。
这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就
是前端发的数据不对;
请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题咯。
 
 
37.你们做接口测试自动化吗?
答:现在针对大量应用,普遍推崇做接口测试自动化,维护成本低、收益高。常用的工具有
许多,如 Jmeter、Robot Framework、pytest 等。
 
 
38.列出几个 JMeter 监听器?
一些 JMeter 监听器是:
集合报告
汇总报告
查看结果树
用表格查看结果
图形结果
BeanShell Listener
摘要报告等
 
 
39.在 python 中进行数据驱动测试
在 unittest 中,没有自带的数据驱动,我们得借助 ddt 来实现,首先,我们得在 python
运行环境中安装 ddt,用下列命令安装
pip install ddt
另 外 一 个 测 试 框 架 pytest , 它 自 带 数 据 驱 动 实 现 , 是 通 过
@pytest.mark.parametrize(argnames,argvalues) 来实现参数化的。
也可以根据自己需求用 python 实现数据的读取和驱动。
 
 
40.接口自动化中的关联怎么处理?
把上一个请求返回的结果传入到下一个请求的参数中,将请求的结果反射到一个类属性(使
用 setattr()函数),下一个请求去调用这个类属性
 
 
41.自动化测试怎么校验结果?
断言 ,预期结果与实际结果对比
数据库校验,根据测试场景来查询数据库里的数据和请求之前的数据进行比
 
 
 
42.自动化使用的测试框架是什么?简述自动化框架的设计、维护
测试框架:python+unittest+requests+ddt+openpyxl+pymysql+logging
python:入门简单,语法简洁
unittest :定义一个测试用例类,具体的方法来维护测试用例的生命周期,测试场景行为,
测试用例 前置场景,行为,期望结果,实际结果,断言方法,Setup teardown 方法
requests:接口调用 ,支持 http 请求的库,API 简洁,提供不同的 http 请求方法,支持
session,cookies,
ddt :数据驱动,ddt 类装饰器,data 测试方法装饰器 unpack 解包可迭代的数据类型
普通用户,数据库,配置文件---(基础数据)
openpyxl: 数据管理 excel 管理数据,使用 openpyxl 模块来进行 excel 数据的读和写
(excle,csv, json, yaml, txt 都可以管理测试数据)
pymysql:数据库交互,数据校验
eval,json:数据格式的转换 Eval 将 python 支持的格式转换成对应的格式
logging:日志处理, 统一日志输出格式,渠道,级别,执行结果的记录,便于定位问题
jenkins:持续集成
2/框架设计思路:数据驱动+结构分层(可读性,可维护性,可扩展性)
数据驱动:将维护数据与代码分离,接口调用行为一致,针对不同的参数组合驱动不同的测
试场景,减少代码冗余
结构分层:数据层+用例层+逻辑层
数据层:测试数据的支撑 data.xls
用例层:用例的执行 test_register.py test_recharge.py
逻辑层:公用的方法的封装与提取 doexcle.py do_mysql.py http_requests.py logger.py
等模块
3/框架设计步骤:
准备测试数据: EXCEL 表准备测试用例---excel 数据的读取
 
发起请求:请求方法(get/post 方法进行封装---URL 的拼接(不同---参数转化为字典
拿到请求的返回值:解析返回值 code,status,msg 信息
断言
好处:
1、自动化测试用例和手工测试用例的完美结合,减少重复工作
2、配置灵活,可以自主切换测试环境,执行测试用例
3、常用功能进行封装,逻辑清晰,易于维护
4、统一执行入口,管理测试用例集:
run.py 模块通过模糊查找来选择需要执行的测试用例
5、持续集成,定时构建,快速反馈
 
 
43.具体的在这个项目中自动化怎么应用到实际的,您对自动化结果的分析
完成所有的自动化测试框架的设计和实现后,进行接口测试,然后集成到
jenkins,配置定时执行,生成 html 报表,查看测试通过率,查看接口的功能
每次发版时,进行回归测试,新功能开发未提测前

热门文章

暂无图片
编程学习 ·

那些年让我们目瞪口呆的bug

程序员一生与bug奋战&#xff0c;可谓是杀敌无数&#xff0c;见怪不怪了&#xff01;在某知识社交平台中&#xff0c;一个“有哪些让程序员目瞪口呆的bug”的话题引来了6700多万的阅读&#xff0c;可见程序员们对一个话题的敏感度有多高。 1、麻省理工“只能发500英里的邮件” …
暂无图片
编程学习 ·

redis的下载与安装

下载redis wget http://download.redis.io/releases/redis-5.0.0.tar.gz解压redis tar -zxvf redis-5.0.0.tar.gz编译 make安装 make install快链方便进入redis ln -s redis-5.0.0 redis
暂无图片
编程学习 ·

《大话数据结构》第三章学习笔记--线性表(一)

线性表的定义 线性表&#xff1a;零个或多个数据元素的有限序列。 线性表元素的个数n定义为线性表的长度。n为0时&#xff0c;为空表。 在比较复杂的线性表中&#xff0c;一个数据元素可以由若干个数据项组成。 线性表的存储结构 顺序存储结构 可以用C语言中的一维数组来…
暂无图片
编程学习 ·

对象的扩展

文章目录对象的扩展属性的简洁表示法属性名表达式方法的name属性属性的可枚举性和遍历可枚举性属性的遍历super关键字对象的扩展运算符解构赋值扩展运算符AggregateError错误对象对象的扩展 属性的简洁表示法 const foo bar; const baz {foo}; baz // {foo: "bar"…
暂无图片
编程学习 ·

让程序员最头疼的5种编程语言

世界上的编程语言&#xff0c;按照其应用领域&#xff0c;可以粗略地分成三类。 有的语言是多面手&#xff0c;在很多不同的领域都能派上用场。大家学过的编程语言很多都属于这一类&#xff0c;比如说 C&#xff0c;Java&#xff0c; Python。 有的语言专注于某一特定的领域&…
暂无图片
编程学习 ·

写论文注意事项

参考链接 给研究生修改了一篇论文后&#xff0c;该985博导几近崩溃…… 重点分析 摘要与结论几乎重合 这一条是我见过研究生论文中最常出现的事情&#xff0c;很多情况下&#xff0c;他们论文中摘要部分与结论部分重复率超过70%。对于摘要而言&#xff0c;首先要用一小句话引…
暂无图片
编程学习 ·

安卓 串口开发

上图&#xff1a; 上码&#xff1a; 在APP grable添加 // 串口 需要配合在项目build.gradle中的repositories添加 maven {url "https://jitpack.io" }implementation com.github.licheedev.Android-SerialPort-API:serialport:1.0.1implementation com.jakewhart…
暂无图片
编程学习 ·

2021-2027年中国铪市场调研与发展趋势分析报告

2021-2027年中国铪市场调研与发展趋势分析报告 本报告研究中国市场铪的生产、消费及进出口情况&#xff0c;重点关注在中国市场扮演重要角色的全球及本土铪生产商&#xff0c;呈现这些厂商在中国市场的铪销量、收入、价格、毛利率、市场份额等关键指标。此外&#xff0c;针对…
暂无图片
编程学习 ·

Aggressive cows题目翻译

描述&#xff1a; Farmer John has built a new long barn, with N (2 < N < 100,000) stalls.&#xff08;John农民已经新建了一个长畜棚带有N&#xff08;2<N<100000&#xff09;个牛棚&#xff09; The stalls are located along a straight line at positions…
暂无图片
编程学习 ·

剖析组建PMO的6个大坑︱PMO深度实践

随着事业环境因素的不断纷繁演进&#xff0c;项目时代正在悄悄来临。设立项目经理转岗、要求PMP等项目管理证书已是基操&#xff0c;越来越多的组织开始组建PMO团队&#xff0c;大有曾经公司纷纷建造中台的气质&#xff08;当然两者的本质并不相同&#xff0c;只是说明这个趋势…
暂无图片
编程学习 ·

Flowable入门系列文章118 - 进程实例 07

1、获取流程实例的变量 GET运行时/进程实例/ {processInstanceId} /变量/ {变量名} 表1.获取流程实例的变量 - URL参数 参数需要值描述processInstanceId是串将流程实例的id添加到变量中。变量名是串要获取的变量的名称。 表2.获取流程实例的变量 - 响应代码 响应码描述200指…
暂无图片
编程学习 ·

微信每天自动给女[男]朋友发早安和土味情话

微信通知&#xff0c;每天给女朋友发早安、情话、诗句、天气信息等~ 前言 之前逛GitHub的时候发现了一个自动签到的小工具&#xff0c;b站、掘金等都可以&#xff0c;我看了下源码发现也是很简洁&#xff0c;也尝试用了一下&#xff0c;配置也都很简单&#xff0c;主要是他有一…
暂无图片
编程学习 ·

C语言二分查找详解

二分查找是一种知名度很高的查找算法&#xff0c;在对有序数列进行查找时效率远高于传统的顺序查找。 下面这张动图对比了二者的效率差距。 二分查找的基本思想就是通过把目标数和当前数列的中间数进行比较&#xff0c;从而确定目标数是在中间数的左边还是右边&#xff0c;将查…
暂无图片
编程学习 ·

项目经理,你有什么优势吗?

大侠被一个问题问住了&#xff1a;你和别人比&#xff0c;你的优势是什么呢? 大侠听到这个问题后&#xff0c;脱口而出道&#xff1a;“项目管理能力和经验啊。” 听者抬头看了一下大侠&#xff0c;显然听者对大侠的这个回答不是很满意&#xff0c;但也没有继续追问。 大侠回家…
暂无图片
编程学习 ·

nginx的负载均衡和故障转移

#注&#xff1a;proxy_temp_path和proxy_cache_path指定的路径必须在同一分区 proxy_temp_path /data0/proxy_temp_dir; #设置Web缓存区名称为cache_one&#xff0c;内存缓存空间大小为200MB&#xff0c;1天没有被访问的内容自动清除&#xff0c;硬盘缓存空间大小为30GB。 pro…
暂无图片
编程学习 ·

业务逻辑漏洞

身份认证安全 绕过身份认证的几种方法 暴力破解 测试方法∶在没有验证码限制或者一次验证码可以多次使用的地方&#xff0c;可以分为以下几种情况︰ (1)爆破用户名。当输入的用户名不存在时&#xff0c;会显示请输入正确用户名&#xff0c;或者用户名不存在 (2)已知用户名。…