2019独角兽企业重金招聘Python工程师标准>>>
(1)、一个mssql-microsoft sql server数据库现在需要把一个dbf文件导入数据库中,请简单说明导入的各种方法--
mssql数据库是微软的SQLServer数据库服务器
一,
1. 用Excel打开cjk.dbf文件,“文件”—>”另存为”,存为cjk.csv (存为csv文件)
2. 打开SQLyog软件(SQLyog是业界著名的Webyog公司出品的一款简洁高效、功
能强大的图形化MySQL数据库管理工具。)
3. 左侧空白处右击选择选择”Create database…”(创建数据库),输入名字score
4.打开创建表对话框,输入字段名称(表头,每列的名称,与dbf字段保持一致),之后选择“Create Table…”按钮,输入表名score1,结果如下图所示:
5. 在socre1表上右击选择“Import Data From CSV…“,先选择刚才保存的cjk.csv文件后,再单击该图的”change…”按钮 ,打开如图所示对话框单击此到一列中)按钮,将内容变为如上图对话框
所示内容( 这一步必须做,是为了与所建表的字段匹配,否则所有的数据只会添加
再将“Charset“选项设为”utf8“ 单击“OK“
6. 打开Table Data选项卡,单击“Refresh“按钮即可出现如下图所示的效果(此
时已将cjk.dbf文件成功导入到mysql数据库)
二、1、打开navicat for mysql 软件,选择要导入数据的数据库,点击导入向导按钮,弹出导入数据对话框。2、选择dbase文件(*.dbf),点击下一步;3、选择要导入的dbf格式数据,这里需要注意的是编码一定要选择与dbf文件相同的编码,否则中文会乱码的。4、选择目标表。你可以选择现有的表,或者输入新的表名。这里我们新建test表;5、这一步可以修改修改表的属性,点击图片中箭头处设置主键,还可以设置字段大小。6、选择导入模式-添加记录到目标表;7、点击开始就可以了,当出现Finished Successfully 数据就成功导入了
三、将DBF文件导入Sqlserver数据库 - CSDN博客-http://blog.csdn.net/whuyi/article/details/5990205
--方法一:
select * into 要生成的SQL表名 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase IV;HDR=NO;IMEX=2;DATABASE=c:/','select * from dbf表名.dbf')
--方法二:
select * into 要生成的SQL表名 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase III;HDR=NO;IMEX=2;DATABASE=c:/','select * from dbf表名.dbf')
--方法三:
select * into 要生成的SQL表名 from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:/','select * from dbf表名.DBF')
--用前两种方法导入SQL SERVER后,源表再用VFP打开就不提示“不能存取文件”,说明语句执行后就把源表关闭了。不过也有不尽人意的地方,就是用前两种方法导入后,源表中的字符型字段导入后SQL表字段对应变成NVARCHAR了。
--第三种方法有一个缺点:把DBF表导入SQL Server中后,马上用VISUAL FOXPRO打开DBF表,会提示“不能存取文件”,即这个表还被SQL打开着呢。可是过了1分钟左右,再打开DBF表就可以了,说明经过一段时间后查询分析器才把这个表关闭。
可以直接将dbf文件导入sqlserver数据库
(2)、有一张表 里面有3个字段(hbdm+zjzh+zjye),其中主键为hbdm+zjzh,高hbdm取值为0、1、2,请找出表中的zjzh,使得该zjzh只存在在一条hbdm=0的记录,请尽量采用多种方法,并比较哪种方法最佳,并说明理由;
1\select distinct zjzh ,hbdm from zjk where hbdm=0;
2\select zjzh ,hbdm from zjk where hbdm=0 and rownum=1;
第二个最佳,第一个随着数量的增加,速度成倍下降
(3)、现在有一个多表关联查询耗时较长,需要优化,请描述优化时,要考虑的方面和可采取的方法;
最简单的优化 就是减少连表的数量 实际上就是减少了嵌套循环查询的层次 即降低了时间复杂度
给tid和uid加上索引,并且改变sql为select * from t,ut,u where ut.uid = u.uid and t.tid = ut.tid。因为t表和ut表的数据量都在300W的样子,u表的数据量200条左右。所以先上u表和ut表关联减少联合查询记录数,最后再和t表关联,查询速度就快了。多表连接条件先后顺序也影响sql查询效率。
解:
1、减少表嵌套,只列出需要的查询字段
2、给要创建的表主键加上索引
3、第三个就是创建一个新表
(4)、软件测试主要考察软件的哪些方面,测试用例制定的原则和方法
功能,性能,易用性,兼容性,安全性,稳定性测试
原则如下:
1、测试用例的代表性:能够代表并覆盖各种合理的和不合理、合法的和非法的、边界的和越界的、以及极限的输入数据、操作和环境设置等。
2、测试结果的可判定性:即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。
3、测试结果的可再现性:即对同样的测试用例,系统的执行结果应当是相同的。
不管是从个人角度还是从公司角度,根据我这几年的经验我觉得case的设计应该符合以下几点:
1、一个case一个功能点:每个case都要有个测点,找准一个测点则可,不能同时覆盖很多功能点,否则执行起来牵连太大;
2、case的易读:从执行者的角度去写case,最好不要有太多的术语在里面,如果要有最好指明具体位置;
3、case的执行粒度:粒度越小越好;
4、步骤清晰:一个case多个步骤,可一个重点,步骤指名人们怎么去操作,expect则指明这样操作之后应该看到什么结果---最好不要用正确,正常,错误之类的含糊主观的字眼。
5、总体设计:先正常,后异常,这样可以确保正常情况下功能能够走通。
总之:对于一个新来的tester,给他个case和我们的软件,他就能顺利取执行case.
方法:流程分析法,边界值分析法,等价类划分法,错误推测法、正交表分析法(
有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性
)等
(5)某券商有一套外围系统,目前修改登录部分,请设计测试用例
登录功能通用测试用例
具体需求:
有一个登录页面,有一个账号和一个密码输入框, 一个提交按钮。 请针对这个页面设计Test Case。
此题的考察目的:
1、了解需求(测什么都是从了解需求开始);
2、是否有设计Test Case的能力
3、是否熟悉各种测试方法;
4、是否有丰富的Web测试经验;
5、是否了解Web开发;
了解需求:
测试需求分析过程,可以从质量要求出发,来展开测试需求分析,如从功能、性能、安全性、兼容性等各个质量要求出发,不断细化其内容,挖掘其对应的测试需求,覆盖质量要求。也可以从开发需求(如产品功能特性点、敏捷开发的用户故事)出发,针对每一条开发需求形成已分解的测试项,结合质量要求,这些测试项再扩展为测试任务,这些测试任务包括了具体的功能性测试任务和非功能性测试任务。在整理测试需求时,需要分类、细化、合并并按照优先级进行排序,形成测试需求列表。
1、登录界面应该是弹出窗口式的,还是直接在网页里面;
2、账号长度和密码的强度(比如需要多少位、大小写敏感、特殊字符混搭等);
3、界面美观是否有特殊要求?(即是否要进行UI测试);
4、····
用例设计:
测试需求分析完成后,开始用例设计,主要可以从以下几个方面考虑:
功能测试(Function Test)
1、输入正确的账号和密码,点击提交按钮,验证是否能正确登录。(正常输入)
2、输入错误的账号或者密码, 验证登录会失败,并且提示相应的错误信息。(错误校验)
3、登录成功后能否跳转到正确的页面(低)
4、账号和密码,如果太短或者太长,应该怎么处理(安全性,密码太短时是否有提示)
5、账号和密码,中有特殊字符(比如空格),和其他非英文的情况(是否做了过滤)
6、记住账号的功能
7、登录失败后,不能记录密码的功能
8、账号和密码前后有空格的处理
9、密码是否加密显示(星号圆点等)
10、牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用
11、登录页面中的注册、忘记密码,登出用另一帐号登录等链接是否正确
12、输入密码的时候,大写键盘开启的时候要有提示信息。
13、什么都不输入,点击提交按钮,看提示信息。(非空检查)
界面测试(UI Test)
1、布局是否合理,2个Testbox 和一个按钮是否对齐
2、Testbox和按钮的长度,高度是否复合要求
3、界面的设计风格是否与UI的设计风格统一
4、界面中的文字简洁易懂,没有错别字。
性能测试(Performance Test)
1、打开登录页面,需要几秒
2 、输入正确的账号和密码后,登录成功跳转到新页面,不超过5秒
安全性测试(Security Test)
1、登录成功后生成的Cookie是否有HttpOnly(降低脚本盗取风险)
2、账号和密码是否通过加密的方式,发送给Web服务器
3、账号和密码的验证,应该是用服务器端验证,而不能单单是在客户端用javaScript验证
4、账号和密码的输入框,应该屏蔽SQL注入攻击
5、账号和密码的的输入框,应该禁止输入脚本(防止XSS攻击)
6、错误登录的次数限制(防止暴力破1解)
7、考虑是否支持多用户在同一机器上登录;
8、考虑一用户在多台机器上登录
可用性测试(Usability Test)
1、是否可以全用键盘操作,是否有快捷键
2、输入账号,密码后按回车,是否可以登录
3、输入框是否可以以Tab键切换
兼容性测试(Compatibility Test)
1、主流的浏览器下能否显示正常已经功能正常(IE6~11, FireFox, Chrome, Safari 等 )
2、不同的平台是否能正常工作,比如Windows, Mac
3、移动设备上是否正常工作,比如iPhone, Android
4、不同的分辨率
本地化测试 (Localization Test)
1、不同语言环境下,页面的显示是否正确。
软件辅助性测试 (Accessibility Test)
软件辅助功能测试是指测试软件是否向残疾用户提供足够的辅助功能
1、高对比度下能否显示正常(视力不好的人使用)
数据符合需求规则情况下:
1、输入正确的账号和密码,点击提交按钮,验证是否能正确登录。(正常输入)
2、输入错误的账号或者密码, 验证登录会失败,并且提示相应的错误信息。(错误校验)
3、输入用户名,密码为空
4、用户名为空,输入密码
5、用户名和密码都为空6、用户名正确,密码错误
(6)pathon能做什么,它与java\c++有何不同,你用pathon 作过何工作
网络编程,游戏编程,连接数据库并对数据库进行处理,可以在多种操作系统上编辑及应用
Python是一种计算机程序设计语言,比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。
所以Python是一种相当高级的语言。
用Python可以做什么?
可以做日常任务,比如自动备份你的MP3;
可以做网站,很多著名的网站像知乎、YouTube就是Python写的;
可以做网络游戏的后台,很多在线游戏的后台都是Python开发的。
JAVA 引入包后,调用包的方式比 Python 要简洁些,而 Python 直接 import 包则是显式的,不会出现同名模块/类冲突的问题,如果使用“from module import function”的话,在使用的时候也很简洁却要求必须有针对性地引用函数。
JAVA 里的块用大括号对包括,Python 以冒号 + 四个空格缩进表示。
JAVA 的类型要声明,Python 的类型不需要。
JAVA 基本上是类/结构操作,也就是面向对象处理,Python 可以以独立的函数模块来处理逻辑而不需要放到类中。
JAVA 每行语句以分号结束,Python 可以不写分号。
JAVA 中的字符串以双引号括起来,Python 中单引号或双引号都可以(与 JavaScript 一样)。
实现同一功能时,JAVA 要敲的键盘次数一般要比 Python 多。
(7)在SHELL环境怎样杀死一个进程
使用kill命令结束进程:kill xxx
常用:kill -9 324
Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME
(8)请描述你知道的国内证券交易品种以及投资特性
1.证券是用来证明持有人享有的某种特定权益的凭证。如股票、债券、本票、汇票、支票、保险单、存款单、借据、提货单等各种票证单据都是证券。
证券是指各种经济权益的凭证。
可分为凭证证券和有价证券。
其中凭证证券是单纯证明一定事实的证券,如借据、收条等。
有价证券包括三类:商品证券、货币证券、资本证券。
商品证券一般包括提货单、货栈单等
货币证券主要指汇票、本票、支票。
资本证券主要有股票、债券、基金。
证券都是虚拟资产,是代表实际资产的凭证,黄金当然不是,期货也不是证券,金融期货才是证券,比如我国以前曾试验过国债期货,但是由于3.27事件停办了,外汇自然也不是证券,它并不是任何实际资产的替代!!
(9)请描述国内证券交易所竞价交易的撮合规则
(一)竞价原则
证券交易所内的证券交易按“价格优先、时间优先”原则竞价成交。
(1)价格优先。成交时价格优先的原则为:较高价格买入申报优先于较低价格买入申报,较低价格卖出申报优先于较高价格卖出申报。
(2)时间优先。成交时时间优先的原则为:买卖方向、价格相同的,先申报者优先于后申报者。先后顺序按证券交易所交易主机接受申报的时间确定。
(10)试述软件开发中,可能发生的错误类型,以及软件测试中应对的方法
问题1: 从项目的需求搜集开始,业务专家搜集和提出基于整个业务的需求体系,但是在从初始的需求转化为软件特性和功能的过程中,由于业务专家和技术人员的沟通不充分或者需求描述不完善,导致技术人员对需求的理解产生曲解,从而影响该软件完成后不符合用户提出的真实需求。
问题2: 从初始的业务需求转化为软件特性的过程中,缺乏有效的跟踪和管理,导致软件功能特性与用户需求脱节。
问题3:在项目过程中,用户提出改进的需求或者增加软件功能和特性,项目组在了解需求后,软件架构进行调整或者重构,但是如此频繁的重复下来,需求来源不清楚,软件规格书未反应需求变化,或者接受需求但未调整项目的整体进度,导致一些混乱情况的发生。
上述1,2个问题其实都是对需求跟踪和管理机制的不完善引起的。在任何一个软件开发过程中,都充分地强调了需求管理的重要性,在项目立项后,由专人或专门的团队(这些人必须是了解该项目业务领域的知识,并且有相关的技术经验)搜集该项目的原始需求,然后和技术专家(或团队)进行充分的沟通和讨论,保证技术专家对原始需求乃至一些用户要求的细节有完整而正确的理解,接着技术专家就会根据原始需求的文档,根据对需求的理解撰写软件规格书,在写的过程中,应该不断让业务专家一定程度的参与例如审稿或一定程度的修订,并且参与评审),这样的软件规格书才能为进一步正确地进行软件分析设计提供素材和指导
建议采用需求和变更跟踪工具(比如rational clearquest)来对需求和变更进行全过程的跟踪,这样在形成需求文档的时候,每个需求来源和其状态都是非常清楚的--方法:先进行需求评审,搞懂需求,设计测试用例,让开发及业务人员评审测试用例,是否有不足或遗漏的地方
(11) 撰写软件需求规格说明书时,要描述功能和非功能需求,其中非功能性需求都包括哪些方面
用户对软件质量属性、运行环境、资源约束、外部接口等方面的要求或期望
(12) 为什么JSP页第一次访问时有访问延迟?有什么方法解决它
访问延迟是因为,第一次访问是,要把jsp编译成class也就是servlet文件,在后台执行相应的操作。 通过servlet文件,向用户前台写入
页面文件
解决办法是,你自己先把jsp编译一下,把class文件放到tomcat相应目录里面
注:一种服务器的名称,是一个开源而且免费的jsp服务器,由apache软件基金会的jakarta项目中的一个核心项目,因为tomcat技术先进性能稳定和监督易用性已成为最为广泛的jsp服务器
另外注意在测试环境中要模拟弱网环境,以下是方法:
抓包工具Fiddler的使用教程(三):如何模拟弱网环境
原创 2017年01月06日 14:56:22
标签:
弱网环境
3165
接着继续我们的Fiddler教程
如何模拟弱网环境
移动端测试,最离不开的就是网络,现在的网络有2G、3G、4G、甚者逆天5G,当然我们用的更多还是Wifi。在测试的时候,我们要考虑网络的各种情况,网络稳定流畅,弱网环境,网络之间的切换,断网再连接等等。
今天我们就来讲讲,如何模拟弱网环境。
360Wifi模拟弱网
因为我是PC机,只能够通过360Wifi发射热点。
点击已连接的手机
选择要进行限速的设备,鼠标放在右侧的小图标上,点击限速管理
设置下载速度、上传速度,数值越小,则网络越弱。
ok,弱网环境模拟成功!
Fiddler模拟弱网
当然Fiddler也可以模拟弱网环境
打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds
之后,你会发现网络变得超级慢。
Fiddler弱网的原理
我们还需要搞明白,Fiddler模拟网路速度的原理。
Rules—>Cutomize Rules
打开CustomRules.js 文档
可以下载Fiddler2 ScriptEditor,这样代码看起来比较清晰。
下载地址:http://www.telerik.com/fiddler,可以在官网中搜索下载。
在文件中搜索关键字,m_SimulateModem
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = "300";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "150";
}
让我们来分析一下这几行代码:
首先来判断m_SimulateModem是否为true,也就是是否设置了弱网模式。
如果为弱网模式。则分析代码
oSession[“request-trickle-delay”] = “300”; 注释的也很明白,Delay sends by 300ms per KB uploaded.上传1KB需要300ms,转化一下上传速度:1Kb/0.3s = 10/3(KB/s)
如果你想设置上传的速度为50KB/s,你则需要设置Delay 时间为 20ms
同样的方法,也可以限制上传的速度,调整oSession[“response-trickle-delay”]即可。
用一台手机连接到另一台手机的WIFI,然后设置另一台手机的移动网络为2G或3G,这样也可以模拟弱网