云轴-电话面试
python- 深拷贝和浅拷贝
copy.copy():浅拷贝是创建一个新对象,但是新对象的元素是原对象的引用。也就是说,新对象和原对象共享同一块内存空间。当原对象的元素发生改变时,新对象的元素也会随之改变。
copy.deepcopy():深拷贝是创建一个新对象,并且新对象的元素也是新创建的对象,而不是原对象的引用。也就是说,新对象和原对象完全独立,互不影响。当原对象的元素发生改变时,新对象的元素不会受到影响。
python对列表做修改
list.append(obj)
list.extend(obj)
list.insert(index,obj)
切片:list[start_index,end_index] = [value1,value2,…]
list[index] = value
list.reverse()
list.sort()
快速排序的思想,时间复杂度
从待排序序列中选出一个基准值,一般是第一个数字,然后从第二个数据开始和基准值比较,小的放前面,大的放后面,然后对于基准值前后的子序列再次执行上述操作。
时间复杂度:O(nlogn)
sql索引
含义:索引是mysql的数据结构,用于加快数据库的查询速度和性能
分类:单索引和组合索引
缺点:
创建索引需要额外的存储空间
对表进行插入,更新,删除操作的时候,索引需要维护,会影响性能
过多或者不合理的索引会影响查询效率
四层和七层模型
tcp四层:应用层,传输层,网络层,数据链路层
ios七层模型:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层
网络层和传输层的协议
网络层:ip协议
传输层:tcp协议
Linux查看日志
- tail:查看文件的后10行
tail filename 查看filename的后10行
tail -n 100 filename 查看filename的后100行
tail -f filename 监听文件实时更新,循环读取filename的内容
- less:滚动查看文件内容
less filename 翻页查看filename的日志内容
less -N filename 显示行号
less -n filenam 不显示行号
执行less filename之后可以输入
:G 直接跳转到最后一行
:?[字符内容] 全文向上匹配字符,高亮显示
- cat:查看全部日志内容
cat filename 查看全部日志内容
cat -n filename 显示行号
- head:查看文件的前10行
head filename 查看filename的前十行
head -n 100 filename 查看filename的前100行
- grep:在日志中搜索指定的内容
grep [搜索字符串] filename 查看filename中搜索字符串的所在行
grep -A 10 [搜索字符串] filename 查看filename中搜索字符串所行以及后十行的内容
grep -B 10 [搜索字符串] filename 查看filename中搜索字符串所行以及后十行的内容
grep -C 10 [搜索字符串] filename 查看filename中搜索字符串所行以及前后十行的内容
CICD的部署
编写docker-compose.yml、Dockerfile为docker的配置文件
安装gitlab runner
编写git-ci.yml文件,配置cicd流程
git常用命令
克隆代码到本地 git clone Git_URL
eg:git clone https://github.com/xxxxx/xxxxx
切换分支 git checkout Branch_Name
eg:git checkout TestBranch
创建分支 git branch Branch_Name
eg:git branch test-ui
拉取某一个分支到本地 git pull https://github.com/xxxxx/xxxxx Branch_Name
eg:git pull https://github.com/xxxxx/xxxxx TestBranch
查看提交记录 git reflog
使用该命令之后就会得到类似如下一样的记录,其中34vf5cm就是Version_Id:
34vf5cm (HEAD -> test) HEAD@{0}: initial pull
1
回退到某一个版本 git reset --hard Version_Id
eg:git reset --hard 34vf5cm
提交代码 :假设Branc_Name是你创建的分支,你想要把你的代码提交到这个分支下面,就可以通过下面的代码提交。
git status 查看当前分支的状态,那些文件做了修改,哪些是新增的。
git add . 添加代码到缓存区
git commit -m ‘description~’ 将缓存区的内容添加到仓库,可以加一些description
git push origin Branch_Name 将你的代码跟远程仓库(Branch_Name分支下)的代码合并。
拉去指定分支下的代码 git clone -b Branch_Name git_path
eg: git clone -b testbranch https://github.com/xxxxx/xxxxxxx.git
云轴-电话面试2
测试计划包含哪些内容
1、测试概要;2、测试目标;3、测试范围;4、测试方法;5、时间进度安排;6、人员职责;7、资源;8、风险评估;9、测试交付件。其中,测试概要需说明所需测试的软件、名词解释、以及提及所参考的相关文档。
测试方法(黑盒白盒)
黑盒测试方法:等价类,边界值,场景法,因果图,流程分析法,错误推测法,判定表驱动法,正交实验设计法。
白盒测试方法:
语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
pytest,unit test的区别
pytest简介:是一个简单灵活易上手的python单元测试框架,支持参数化,也可以做更复杂的功能测试,可以和Jenkins集成,含有丰富的第三方插件pytest-html,pytets-xdist,pytest-html,pytest-xfail,pytest.skip,与selenium集成可以做web自动化,与requests模块集成可以做接口自动化,与appium结合可以做App自动化,pytest的特点,类需要以Test开头,类中不能有init函数,函数名需要以test开头,模块名需要以test_开头或者_test结尾。
区别:
- 断言:pytest使用的是python的原生断言assert,后面直接跟表达式即可,unit test使用的是assertequal()。assertnotequal()等方法。
- 用例的设计规则:
pytest的测试类以Test开头,类中不能有init方法,文件名以test_开头或者_test结尾,测试用例方法名以test开头。
unit test的类需要继承unittest.case这个类,类中需要有unittest.main()方法,测试方法以test_开头 - pytest支持灵活的参数化@pytest.fixture.parametrize,unit test的参数化依靠第三方库nose_parameterized
- 用例的前后置:
pytest的有四种级别的前后置,分别是模块,函数,类,方法,eg:setup_module/teardown_module,其中pytest.fixture也可以设置前后置,scope有四个等级,分别是:function,module,class,session.
unittest的前后置是:setup/teardown和setup_class/teardown_class - pytest生成测试报告可以使用pytest-html或者allure,unit test用的是html test runner
- pytest支持用例失败重试,unit test不支持
- pytest有很丰富的第三方插件,但是unit test没有
两个列表,一个是name,一个是age,成对打印这些信息
zip函数可同时对两个列表进行遍历
li = ["张三","李四","王二"]
li1 = [18,19,20]
for i, j in zip(li, li1):
print(i, j)
打印出来的值:
张三 18
李四 19
王二 20
python调用shell命令
1,os.system(cmd) 返回执行状态
2.os.popen(cmd) 返回执行结果
3,commands.getStatusOutput(cmd) 返回执行结果和状态
commangs.getoutput(cmd) 返回执行结果
4,subprocess.run(cmd) 返回执行结果
sunprocess.call(cmd) 返回执行状态
Jenkins的环境搭建
1,下载Jenkins
2,安装以及配置jdk
3,解压war包:java -jar jenkins.war
4,打开Jenkins的项目地址
5,使用管理员口令登录
6,安装所需插件
7,创建第一个用户。
自动化测试如何跟jenkins结合
1,Jenkins中新建工作i项目
2,项目建立后,都需要先执行一遍构建,生成工作区间
3,安装git相关的插件
4,源码管理中配置git仓库的url和凭证
5,构建中输入 运行测试文件的批处理命令
6,配置好之后就可以运行项目
设计云计算的虚拟机迁移的功能测试用例
职业规划
相关知识:
索引
添加索引:
1,创建索引 create index index_name on table_name (column1,column2);
2,修改表结构添加索引 alter table table_name add index index_name (column1,column2);
3,创建表时直接添加索引
create table table_name(
id int,
name varchar(10),
age int,
index index_name(id)
);
唯一索引UNIQUE:
create unique index on table (column1);
删除索引
1,删除索引:drop index index_name on table_name;
2,修改表结构删除索引 alter table table_name drop index index_name;
显示索引:
show index from table/G ;
测试理论知识
测试报告:
1,测试目的,2,测试概要(对象,时间,人员,资源,环境,范围),3执行通过标准,4测试用例执行情况,5缺陷统计情况,6测试结果分析,7测试结论,8遗留问题风险说明,9测试问题记录单
测试方案:测试目的,项目介绍,测试范围,测试策略,测试准备检查,测试用例,测试通过标准,测试风险,测试输出
测试策略:功能测试,接口测试,性能测试等