2022年 11月 3日

Python自动化测试

一、Python+Request
1.基本的get请求b = requests.get(url=“http://120.76.222.26:8111/login?username=13554825492&password=123456”)
2.带参数的get请求r = requests.get(url=“http://120.76.222.26:8111/login?”,params={“username”:“13554825492”,“password”:“123456”})
3.输出get请求返回的状态码Print(r.stutus_code)
4.输出get请求返回的数据Print(r.text)
5.简单的post方法p = requests.post(url=””,data={“data1”:“888”})
二、什么是unittest框架?
三、pytest框架。
文件 类 方法都以test开头
比unittest更加丰富好用 是unittest的升级版
可以执行各种用例 文件 模块 标记 哪个模块哪个用例
mark标记
parametrize参数化
四、什么样的项目时候做自动化。
1.比较频繁的回归测试。
2.各种环境的测试。
3.页面元素改动不大。
4.项目周期比较长。
五、自动化测试流程。
六、自动化测试的优点。
1.在经常回归验证,在各种环境验证时,比较节省时间。
2.需要维护,很多自动化测不了,经常测核心功能和用例。

二、你们的自动化是怎么做的?流程是什么?
1、首先是开个会议适不适合做自动化测试,需不需要做自动化测试,哪些功能需要实现自动化测试。2、指定一个计划,每个阶段完成多少,什么时候完成。3、准备好 自动化测试环境工具之类的。我们用Python+Pycharm来编写自动化用例。环境工具准备好,就开始写自动化用例,我们是参照功能测试用例,来编写自动化测试用例的。4、用例是这样写的:先规划框架,我们的框架是这样的,有用例层(用来编写用例),有执行层(用来执行用例),数据层(用来读取数据的),配置层(用来 读取配置的),公共方法层(存放公共方法的),还有日志层(存放日志截图的)。5、规划好框架后,开始编码。导入模块,定义类,继承unitest.testcase基础类。定义setup方法,一般是打开浏览器等操作。然后定义用例的方法,一个功能可能有多个用例,可以定义多个方法。然后对用例进行判断。后面再补充一个teardown方法。6、用例编写完,然后调试一下,没问题的话。就把用例加到容器中,运行这个容器,就是运行这些用例。7、用HTMLtestunner生成测试报告。8 、执行这个脚本,查看测试报告,有问题的就让开发改。

七、如何处理多窗口 弹窗。
1.switch to alter 或者直接用普通定位元素的方式。
2.switch to Window
switch to current Window

八、quit 和close的区别。
close关闭当前
quit关闭所有窗口

九、如何实现滚动条拖拽。
ActionChains中的 drag and drop

十、动态元素怎么定位?
可以通过某个属性包涵什么 contains或者通过子节点父节点

十一、怎么保证测试用例正确性。
用例都是通过功能用例来的。主要的是对用例进行判断,保证这个用例是否正确。可以通过assert进行判断。

十二、怎么保证测试的效率。
十三、定位一组元素和定位一个元素的区别。
一个是element 一个elements。

十四、单斜杠和双斜杠的区别。
单斜杠 绝对路径 双斜杠 相对路径

十五、元素定位不到的的原因。
1.定位xpath写错了。
2.网页没有加载出来,元素还没有出现。
3.元素在iframe里面。
4.动态元素。
5.前端改了代码。
6.元素被另一个页面遮挡了。

十六、自动化框架是怎么样的。
自动化框架
Python selenium unittest Po基础类 封装了元素定位方式。页面类 每一个页面一个类,类里面封装页面的每一步的操作方法。配置文件 记录配置文件数据数据目录 导入测试数据 输出目录 包括测试报告 日志 截图testcases 目录测试用例目录,用test开头。方便查找。run目录 执行。十七、等待类型。
十七、等待类型
sleep强制等待
implicitly_wait()隐式等待 全局作用 对整个drive有效,等待页面所有元素加载完成。一般在打开浏览器就开始定义。
WebDriverWait() 显示等待 针对某个元素进行等待。
十八、自动化怎么做的?
十九、装饰器用过吗?怎么不运行不要的用例。
skip