1. 工具的选项
可以根据你熟悉的来进行搭建框架,相对来说python比较熟悉一些,所以这里我就选择的是python。目前比较流程的python接口自动化测试框有unnittest和pytest。先看一下他们的特点与区别,具体再来选择那一个,可以因个人而定。
特性 | unnittest | pytest |
---|---|---|
用例编写与方法 | 1、测试文件必须导入unittest包。 | |
2、测试类必须继承unittest.TestCase | ||
3、测试类必须有"unittest main()"方法 | ||
4、测试方法必须要以"test_"开头 | 1、测试文件名要以"test_“开头或是”_test"结尾。 | |
2、测试类名必须以"Test"开头。 | ||
3、测试方法名字必须以"test_"开头。 | ||
4、测试类里面不能使用“init”方法 | ||
用例分类执行 | 默认执行全部用例。也可以通过加载testsuilt,执行部分用例 | 通过@pytest.mark方法标记类和方法。 |
pytest main加入参数(“-m”) 来只执行标记的类和方法。 | ||
用例前置和后置 | 提供了setUp/tearDown,只能针对所有用例 | pytest中的fixture显然更加灵活,可以任意自定义方法函数,只要加上@pytest.fixture()这个装饰器,那么被装饰的方法就可以被使用 |
参数化 | 依赖ddt库 | |
可以通过nose_parameterized来实现,格式:@nose_parameterized.parameterized.expand(data),'data’为list格式参数化的数据 | 使用@pytest.mark.parametrize装饰器 | |
断言格式 | 断言很多格式(assertEqual、assertIn、assertTrue、assertFalse) | 只有assert一个表达式,用起来比较方便 |
生成测试报告 | 使用HTMLTestRunner | pytest-HTML、allture插件 |
失败重跑 | 无 | pytest-returnfailures插件支持失败重跑 |
兼容性 | 不能兼容pytest | 兼容unittest |
编写工具的选择,比较好用的有pycharm,有社区免费的也有企业收费的。来看看免费的与收费的特性,再结合我们要实现的功能来选择使用那个版本。
pyCharm 专业版与社区版的区别见下表:
PyCharm Professional Edition | PyCharm Community Edition | |
---|---|---|
Intelligent Python editor | ✓ | ✓ |
Graphical debugger and test runner | ✓ | ✓ |
Navigation and Refactorings | ✓ | ✓ |
Code inspections | ✓ | ✓ |
VCS support | ✓ | ✓ |
Scientific tools | ✓ | × |
Web development | ✓ | × |
Python web frameworks | ✓ | × |
Python Profiler | ✓ | × |
Remote development capabilities | ✓ | × |
Database & SQL support | ✓ | |
Download.exe | Download.exe |
对照上表可以看出如果是只简单的一些编写不用web网站开发,不用sql的话,免费社区版的够用了。不过现在网上有很多破解方法。也是很容易破解的。在这里本人想要使用数据库,所以选择了专业版,在网上找的破解方法,其中也遇到一些坑,可以参见第3节过程中遇到的问题及解决方法总结。
2. 自动化测试架构
工具待定了,接下来就是部署架构了。
3. 过程中遇到的问题及解决方法
1、在安装破解pycharm时遇到无法破解,基本上是因为之前安装过没有卸载干净。
解决办法:卸载掉之前安装的pycharm版本,打开注册表regedit,查找带“pycharm”,无论是值还是健都给删除掉,然后重启电脑,再重新安装破解。