2024-01-01

##四、python

1. python数据类型有哪些

①Number(数字)

②String(字符串)

③List(列表)

④Tuple(元组)

⑤Set(集合)

⑥Dictionary(字典)

1)列表 VS 元组

第一: 列表的声明用中括号[],元组的声明用小括号(),并且元组只有一个元素的时候需要在后面加逗号

第二: 列表是可变的,元组是不可变的.元组一旦被定义,里面的元素和个数就不能改变

2)元组的使用场景

第一种:字符串格式化拼接

tuple1 = ("aaa",21,188)

print("%s 年龄是%d的身高是%d" % tuple1)

第二种:函数返回多个值

def demo():

    return (1,2,3)

2. 函数是值传递还是引用传递

值传递和引用传递的区别如下所示: 函数参数进行值传递后,若形参的值发生改变,不会影响实参的值;

函数参数进行引用传递后,若形参的值发生改变,实参的值也会一同改变

其中,值传递:指的是实参类型为不可变类型(数字、字符串、元组);

引用传递(或叫地址传递):指的是实参类型为可变类型(列表,字典,集合);

4. 内置模块,基本用法

os, time, requests, xlrd, thread,pymysql,flask

5. json.dumps  json.loads

json.dumps(zidian) //zifuchuan

json.loads(zifuchuan) //zidian

6. 代码中使用到哪些装饰器

fixture, paramtrize

7. 用的什么断言方法

![](https://upload-images.jianshu.io/upload_images/2913413-134612d7b09d0fe6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


8. 如何判断数据类型

type方法

9. 面向对象有哪三大特性:

**封装 继承 多态**

![](https://upload-images.jianshu.io/upload_images/2913413-9caae81f38ddf15b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)



##五、自动化接口测试框架

1. 自动化的基本流程

使用pytest+request+allure接口测试框架,实现excel维护测试用例,利用封装的请求调取相应的测试用例接口,获取配置文件中的环境变量,使用log进行日志记录,并生成allure测试报告,最后进行jenkins集成实现测试报告邮件发送

2. 接口测试的要点

![](https://upload-images.jianshu.io/upload_images/2913413-a7b8b426c86cef8b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


3. 自动化是数据驱动,使用@pytest.mark.parametrize('参数名',list)实现参数化(参数化定义:相同的测试步骤,不同的测试数据)

4. 数据库获取最新数据方法:fetchall

5. 自动化接口测试的占比:已实现800多个testcase,占比80%(说明一共有1000左右),执行需要4分钟

6. 自动化代码包括哪些结构

![框架](https://upload-images.jianshu.io/upload_images/2913413-08b92d8a2af51336.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

7. python 三元运算符

if a>b ? 1 : 0

8. 自动化框架代码中,如何实现参数上下关联

使用函数返回值的思想来解决

9. pytest的特点

- 简单灵活,容易上手

- 支持参数化

- 支持接口自动化、UI自动化测试

- pytest具有很多第三方那个插件,并且可以自定义扩展

##六、request


1. requests.session()发送请求 和使用requests直接发送请求的区别

> 1.每次接口请求后获取到响应中的cookie,然后接下来的所有请求带上这个cookie

2.使用requests.session会话对象,保持登录状态,然后对接口进行操作的场景


2. get VS post

> 1.GET 请求的参数通过 URL 传送,而 POST 放在 Request Body 中

##七、jenkins

定时执行测试,生成测试报告,并邮件发送给相关人员

## 八、测试用例设计

1. 测试杯子

1)功能(正常流程和异常流程):容量

2)用户使用场景:喝水,水能不能被喝到

3)易用性: 防滑,烫手

4)美观性:杯子外观,图案设计

5)兼容性:能否装高温度的水,汽油等液体

6)可靠性:使用次数损坏

7)安全性:杯口是否给身体造成伤害

8)稳定性:长时间装水,是否会漏水

9)性能


##九、接口工具:postman

1. 环境变量书写格式:环境变量要以 “{{变量名}}” 的方式来引用

2. 传什么类型的数据:body、form-data、二进制文件


##十、linux

1. 常用的命令

> 创建文件:touch

删除文件:rm

查看当前路径:pwd

查看进程:ps -ef |grep 进程名称

杀掉进程:kill -9 进程号

查看日志:  tail -f 1.log  -n 300

修改权限:chmod(change mode)

压缩解压缩:tar

复制:cp(copy)

重命名或剪切:mv

2. 查看端口是否占用

netstat -anp |grep 端口号 //netstat -anp |grep 3306

3. 查看内存命令

free -m

4. 查看磁盘空间的使用情况

df -h

5. 忘记了某个命令怎么用,一般有以下两种方式

--help选项//ls --help

man 查找 //man cd

6. chmod 644

-rw-r--r-- (644)    只有拥有者有读写权限;而属组用户和其他用户只有读权限

##十一、mysql

1. 关系和非关系

2. mysql pg数据库

3. 数据库表的连接方式,说下左连接和右连接的区别

- 左连接

sql语句:select*  from  table_left(表名)  left join table_right(表名)    on  table_left.id  = table_right.id

左连接查询的结果包含左边的全部和右边满足条件的数据

![左连接](https://upload-images.jianshu.io/upload_images/2913413-2c48e71d59a32c13.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


- 右连接

sql语句:select*  from  table_left(表名)  right join table_right(表名)    on  table_left.id  = table_right.id

右连接查询的结果包含右边的全部和左边满足条件的数据

![右连接](https://upload-images.jianshu.io/upload_images/2913413-29c61d7257ae9250.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


##十二、docker +k8s相关

1. docker容器化部署

docker是一个基于Go语言实现的应用容器引擎

> 可移植:让开发者可以打包他们的应用及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化.

沙箱机制:容器是完全使用沙盒机制,相互之间不会有任何接口.

启动快:docker是创建容器进程,而无需启动操作系统

2. docker命令

2.1 镜像制作指令

```

docker build -t 镜像名称:镜像版本  .

```

注意后面有个点,默认使用当前路径下的名为Dockerfile 的文件作为 Dockerfile

可以通过docker images查看是否构建镜像成功/确定镜像库地址

![image.png](https://upload-images.jianshu.io/upload_images/2913413-3e4e1231c9c5266e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)




2.2 镜像启动指令

```

docker run -d  镜像名称:镜像版本

```


2.3 容器查看

通过docker ps -a查看容器ID

![](https://upload-images.jianshu.io/upload_images/2913413-dcc6037290fd9ed5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


2.4 进入容器:

```

docker exec -it 容器ID  /bin/bash

```

2.5 [ 公有镜像仓库的python:3.8.5,推送到私有镜像仓库](https://www.jianshu.com/p/4ef58a584a43)

3. dockerfile命令

```

# 使用官方Python作为运行时父镜像


FROM python:2.7-slim


# 设置工作目录 /app


WORKDIR /app


#将当前目录内容复制到应用程序容器中


ADD . /app


#安装所有requirements.txt规定的的包


RUN pip install --trusted-host pypi.python.org -r requirements.txt


# 当容器启动时运行app.py


CMD ["python", "app.py"]


```

1)add和copy的区别

ADD命令1、支持从一个远程地址复制文件。它将会从远程下载文件,并且复制到容器内部2、可以复制压缩的文件,并且自动地解压缩文件内容到指定的地址。但是这个特性只针对本地的压缩文件生效。COPY没有这两个特性


2)docker start 和docker run区别

docker start指定的是一个容器 docker run是利用镜像生成容器,并启动容器,而docker start是启动一个之前生成过的容器

4. k8s

4.1 k8s是

4.2 k8s常用命令

```

//查看实时日志日志

kubectl logs -f  -n 19-tos tos-dataserver-6cd9c8d94b-p6sbg


//进入容器内部

kubectl exec  -it -n 19-tos tos-consoleserver-5ddf95f497-xtrhz /bin/sh

```

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容