参考连接
- https://testerhome.com/topics/19837
- The Python Tutorial — Python 3.11.2 documentation
- https://docs.python.org/3/library/unittest.html#loading-and-running-tests
- Allure Framework
- https://ddt.readthedocs.io/en/latest/example.html
Python基本类型
echo 'print(3*7)' |python
Python控制结构
Python数据结构
Python面向对象
Python Lib
- string — Common string operations — Python 3.11.2 documentation
- https://docs.python.org/3/library/re.html
- datetime — Basic date and time types — Python 3.11.2 documentation
- math — Mathematical functions — Python 3.11.2 documentation
- threading — Thread-based parallelism — Python 3.11.2 documentation
- https://docs.python.org/3/library/subprocess.html
- json — JSON encoder and decoder — Python 3.11.2 documentation
- http.server — HTTP servers — Python 3.11.2 documentation
- https://docs.python.org/3/library/typing.html
中场休息
16:00 回来
Python单元测试unittest
单元测试属于白盒测试
单元测试框架不局限于白盒测试,黑盒测试也会用到对应的测试框架技术
单元测试是否需要相同的语言
java写的代码可以通过kotin scala jython做单元而逝,c写的原生so或者dll,也可以通过python java做单元测试。只要提供了清晰的编程接口就可以调用。
单元测试是不是都是研发写
是的,单元测试是研发的职责,不是测试工程师的。为什么我们会学单测?
- 因为测试工程是需要关注代码质量,需要维护单元测试的运行,使用持续集成进行每日构建
- 另外一个是我们的自动化测试(UI、接口、其他形式)理论和实现也都是跟单元测试是一致的,具备相同的技术栈。
代码很难做单元测试
一般有如下导致的
- 第三方依赖太多,这个情况需要改进你的设计,实现解耦,第二个是对依赖做mock,使用stub mock fake等各种手段来接触不必要的依赖。
- 存在系统资源依赖,mock也可以搞定
- 对class级别的关键入口函数做单测,java就是public, python里只能自己去选择,跟业务有关联的功能
- 传参太多,重构
还有很多问题,所有的问题都有一个概念,叫做“提高可测性”
数据驱动框架:https://ddt.readthedocs.io/en/latest/example.html
Pytest入门
测试报告Allure2
课间作业1
class Calc:
def add(self, a, b):
return a + a
def div(self, a, b):
if b==0:
return None
else:
return a/b
def above(self, a, b):
if(a>b):
return True
else:
return False
给出针对above的测试用例,把代码贴到回复里
课后作业
- appium python client 、 requests看下他们的源代码与测试用例的结构
- 针对requests,为其中的2个函数提补充2条测试用例,把代码贴到回复里