unittest面试题汇总
库的分类
1.基础库
1.1 OS:路径处理
实例:新建一个data文件夹,下建一个login.txt记事本,里面输入内容。从当前路径读取login.txt里面的内容
1.2 time:针对时间处理
实例:获取当前时间戳,获取当前准确时间
1.4 Json:序列化与反序列化
序列化:就是把内存里的数据类型(列表,元组,字典)转为str字符串的数据类型
反序列化:就是把str的数据类型转为python对象的过程
1.列表的序列化和反序列化(列表的序列化之后是str,反序列化之后还是list)
2.元组的序列化和反序列化(元组序列化之后是str,反序列化之后是list)
3.字典的序列化和反序列化(字典序列化之后是str,反序列化之后还是dict)
4.针对文件的序列化dump和反序列化load
1.5 hashlib:主要提供字符加密功能
hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法
2.测试相关的库
2.1 selenium:UI测试框架
selenium是用于WEB应用程序的自动化测试工具,它直接运行在浏览器中,selenium支持IE,Google,Firefox等主流浏览器
它支持python,java,php等语言
实例:用selenium驱动chrome浏览器,打开百度
2.2 unittest:单元测试框架
unittest是python内置的单元测试框架,具备编写用例、组织用例、执行用例、输出报告等自动化框架的条件
实例:以百度为例,获取百度的title并进行断言
2.3 requests:接口测试框架
requests
库是一个常用的用于http
请求的模块
3、页面对象设计模式的优势
1.可以创建多个测试用例共享的代码
2.减少重复代码的数量
3.如果用户界面发生变动,我们只需要维护一个地方,可以降低维护成本
1.base的包下主要编写基础的代码,可以理解为基础层
2.common下主要存放的是公共类的代码,比如文件目录的处理
3.data文件下主要存放测试过程中使用到的数据,例如各种弹出框消息文本
4.page包下主要存放对象层的代码,可以理解为对象层
5.test包下主要存放编写的测试模块的代码,可以理解为对象层
6.utils下存放的是公共类的代码,比如针对JSON文件,YAML文件的处理
7.report主要存放测试报告
5、自动化测试用例注意事项(原则),也可以说你的测试用例是怎么写的
1、在一个测试类里面,每一个测试方法都是以test开头的,test不能是中间或者尾部,必须是开头,建议test_
2、每一个测试用例方法都应该有注释信息,这样在测试报告就会显示具体的测试点的检查点
3、在自动化测试中,每个测试用例都必须得有断言,无断言的自动化测试用例是无效的
4、最好一个测试用例方法对应一个业务测试点,不要多个业务检查点写一个测试用例
5、如果涉及到业务逻辑的处理,最好把业务逻辑的处理方法放在断言前面,这样做的目的是不要因为业务逻辑执 行错误导致断言也是失败
6、测试用例名称最好规范,有约束
6、自动化测试的流程
1.先梳理哪些模块可以做自动化测试
2.梳理完成后,和相关的人建议对下计划以及梳理的结果
3.编写代码实现梳理的测试模块
4.编写完成后相关的人进行评审代码(测试场景是否考虑周全,测试断言是否合理,代码编写的是否合理)
5.编写完成后,整合到JeKins的持续集成平台
6.下个迭代的时候,直接可以应用于产品的回归测试中
7、梳理出UI自动化测试主要是做什么?
UI测试是模拟用户在软件界面上的各种操作,并且验证这些操作对应的结果是否正确。例如针对新浪邮箱的登录,我们输入正确的用户名和密码期望得到的结果是跳转到登录成功的页面。
1.表单的错误提示信息
2.页面的交互
3.产品的逻辑