<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wm_296的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wm_296</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wm_296]]></copyright><item><title><![CDATA[Python+Selenium之环境配置]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/125737178</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/125737178</guid><author>wm_296</author><pubDate>Tue, 28 Feb 2023 11:19:04 +0800</pubDate><description><![CDATA[Selenium支持非常多的浏览器，如Chrome、Firefox、Edge等，还有Android、BlackBerry等手机端的浏览器。右键点击我的电脑-属性-高级系统设置-环境变量-系统变量，将chromedriver.exe文件的路径添加到path中，如下图。验证是否安装成功，可打开cmd，输入chromedriver进行验证，如下图则为成功。这边要注意的是：Chromedriver的版本一定要与Chrome的版本一致。打开xx项目的页面，运行完之后，会自动打开该地址的页面。]]></description><category></category></item><item><title><![CDATA[抓包工具-Charles]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/126637859</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/126637859</guid><author>wm_296</author><pubDate>Thu, 01 Sep 2022 16:19:22 +0800</pubDate><description><![CDATA[Charles页面功能介绍 ：Structure：将网络按照访问的域名分类Sequence：将网络请求按访问的时间排序通过修改请求的参数，达到查看后端返回数据的效果.....]]></description><category></category></item><item><title><![CDATA[一个简单的接口自动化示例]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/126624529</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/126624529</guid><author>wm_296</author><pubDate>Wed, 31 Aug 2022 17:35:36 +0800</pubDate><description><![CDATA[一个简单的接口自动化示例]]></description><category></category></item><item><title><![CDATA[APP&web测试工具]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/123250296</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/123250296</guid><author>wm_296</author><pubDate>Thu, 14 Jul 2022 11:14:11 +0800</pubDate><description><![CDATA[1.APP 稳定性测试工具

1.1Monkey

可参照我另外一篇博客文章的介绍：优快云https://mp.youkuaiyun.com/mp_blog/creation/editor/121654524
也可以参照该地址： https://developer.android.google.cn/studio/test/monkey

1.2MonkeyRunner

可参照我另外一篇博客文章的介绍：优快云https://mp.youkuaiyun.com/mp_blog/creation/editor/12166142.]]></description><category></category></item><item><title><![CDATA[Postman接口测试工具]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/125480078</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/125480078</guid><author>wm_296</author><pubDate>Thu, 14 Jul 2022 09:54:42 +0800</pubDate><description><![CDATA[一、postman背景介绍二、postman的下载安装三、postman基本使用四、postman的项目实战]]></description><category></category></item><item><title><![CDATA[SQL基础]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/123279845</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/123279845</guid><author>wm_296</author><pubDate>Fri, 25 Mar 2022 11:03:50 +0800</pubDate><description><![CDATA[1.SQL是什么？

SQL的全称为：Structured Query Language---结构化查询语言，是用户访问和处理数据库的标准的计算机语言。数据库包括：MySQL、SQL Server、Access、Oracle等。SQL的范围包括数据的插入、查询、更新、删除，数据库模式的创建和修改以及数据访问控制。

2.SQL可以做什么？

面向数据库执行查询、读取数据库数据、插入新数据、更新新数据、删除数据库、创建表、创建存储过程、创建视图等。

3.RDBMS是什么?

RDBMS全称 Relation]]></description><category></category></item><item><title><![CDATA[参数化和数据驱动]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/123004423</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/123004423</guid><author>wm_296</author><pubDate>Tue, 22 Feb 2022 15:34:40 +0800</pubDate><description><![CDATA[a.参数化：根据传入的数据，对测试用例进行迭代调用

b.数据驱动：基于数据完成的流程调度，通常数据源自于外部数据文件

参数化是数据驱动的基础和特例，


@pytest.mark.parametrize的使用



下面展示两种不同方法实战模拟登录页面-手机号和密码的输入的参数化使用：

a.参数化



b.数据驱动









踩坑：如果遇到启动session失败的情况，假设你是使用oppo手机，那需要开启两项权限，可参照见：OPPO 无法连接 appium踩坑记录_m0_57981597的博]]></description><category></category></item><item><title><![CDATA[Python基础知识- 文件和异常]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/123003488</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/123003488</guid><author>wm_296</author><pubDate>Fri, 18 Feb 2022 15:12:25 +0800</pubDate><description><![CDATA[目录

1.从文件中读取数据

2.写入文件

3.异常

4.存储数据

1.从文件中读取数据

1.1读取整个文件，使用with open


with open('C:\\Users\\Desktop\\恒温、升温和降温.txt') as file_object:
    contents = file_object.read()
    print(contents.rstrip())  //rstrip() 删除（剥除）字符串末尾的空白

1.2文件路径

类似：C:\\Users\\Deskto]]></description><category></category></item><item><title><![CDATA[Python基础知识- 类]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/123001279</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/123001279</guid><author>wm_296</author><pubDate>Fri, 18 Feb 2022 14:43:24 +0800</pubDate><description><![CDATA[1.创建和使用类

1.1创建一个类


class person():
    def __init__(self,name,age):
        self.name = name
        self.age = age

    def sit(self):
        print(self.name.title() + "is now sitting")

    def sleep(self):
        print(self.name.title() + "is now sl]]></description><category></category></item><item><title><![CDATA[Python基础知识- 定义函数]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/122981211</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/122981211</guid><author>wm_296</author><pubDate>Fri, 18 Feb 2022 11:05:26 +0800</pubDate><description><![CDATA[1.定义函数：

使用关键字def 来定义一个函数


def introduction():
    print("Hello world!") 
greet_user()

1.1向函数传递信息


def introduction(username):
    print("Hello world!") 
introduction('Xixi')

1.2实参和形参

以1.1为例子，在函数introduction() 的定义中：

变量username 是一个形参 --- 函数完成其工作所需的一项信]]></description><category></category></item><item><title><![CDATA[Python基础知识- input()和while 循环]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/122977799</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/122977799</guid><author>wm_296</author><pubDate>Thu, 17 Feb 2022 13:17:28 +0800</pubDate><description><![CDATA[目录

1.函数input() 的工作原理

2.while 循环简介

1.函数input() 的工作原理：

函数input（）让程序暂停运行。

Python3.x 中 input() 函数接受一个标准输入数据，返回为 string 类型。

Python2.x 中 input() 相等于raw_input()，用来获取控制台的输入。

实例：



1.1编写清晰的程序

如果提示语较长/超过一行，可将提示存储在一个变量中，再将该变量传递给函数input()

实例：



1.2将数字的字符串..]]></description><category></category></item><item><title><![CDATA[Python基础知识- 字典]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/122965474</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/122965474</guid><author>wm_296</author><pubDate>Wed, 16 Feb 2022 16:26:06 +0800</pubDate><description><![CDATA[1.字典：

在Python中，字典 是一系列键—值对 。每个键都与一个值相关联，可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上，可将任何Python对象用作字典中的值。在Python中，字典用放在花括号{} 中的一系列键—值对表示

键—值 对是两个相关联的值。指定键时，Python将返回与之相关联的值。键和值之间用冒号分隔，而键—值对之间用逗号分隔。在字典中，你想存储多少个键—值对都可以。最简单的字典只有一个键-值对


#1.1访问字典中的值
pets = {']]></description><category></category></item><item><title><![CDATA[Python基础知识- if语句]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/122963336</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/122963336</guid><author>wm_296</author><pubDate>Wed, 16 Feb 2022 15:46:37 +0800</pubDate><description><![CDATA[目录

1.条件测试

1.1检查是否相等 ,使用==

2.2检查是否相等时，考虑大小写

2.3检查不相等 ！=

2.4检查多个条件 and或者or

2.5检查列表是否包含特定的值，可使用关键字in

2.6检查列表是否不包含特定的值，可使用关键字not in

3.if语句

3.1 if语句结构：

3.2 if-else结构：

3.3 if-elif-else结构：

3.4使用多个elif代码块：

3.5else代码块可以省略

3.6测试多个条件

4.使用if语句处理列表

5.设置]]></description><category></category></item><item><title><![CDATA[Python基础知识- 列表]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/122961392</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/122961392</guid><author>wm_296</author><pubDate>Wed, 16 Feb 2022 14:36:06 +0800</pubDate><description><![CDATA[1.列表的定义

由一系列按照特定顺序排序的元素组成，在python中使用[ ] 来表示，并使用逗号来分隔元素。

eg：pets = ['cat','pig','tiger']

1.1访问列表中的任何元素

只需要将元素的位置或者索引告诉Python，以上面的例子为例，想要打印出pig和tiger：


pets = ['cat','pig','tiger']
print(pets[1])
print(pets[2]）

列表的索引第一个位置就是0，最后一个元素可以是-1，也可以是正着数过去的数值

.]]></description><category></category></item><item><title><![CDATA[Python基础知识-变量和简单数据类型]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/122942416</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/122942416</guid><author>wm_296</author><pubDate>Tue, 15 Feb 2022 18:47:38 +0800</pubDate><description><![CDATA[Python
]]></description><category></category></item><item><title><![CDATA[元素定位和基础操作]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/122113828</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/122113828</guid><author>wm_296</author><pubDate>Fri, 24 Dec 2021 16:37:30 +0800</pubDate><description><![CDATA[一、UIAutomatorVirwer的使用

1.存放位置

在安卓SDK的tools的bin文件目录下，有个uiautomatorviewer.bat
2.作用

可以使用该工具获取元素特征信息
3.使用场景

a.电脑连接真机或者打开模拟器

b.启动要测试的APP

c.然后去tools的bin文件目录下，打开uiautomatorviewer.bat，打开后，界面如下（会自动打开一个命令行窗口，该命令行窗口不能关闭，关闭之后，整个工具其实也是被关闭了...]]></description><category></category></item><item><title><![CDATA[Appium启动其他APP]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/122040483</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/122040483</guid><author>wm_296</author><pubDate>Mon, 20 Dec 2021 16:39:00 +0800</pubDate><description><![CDATA[方法一：打开Appium-Desktop，然后打开Pycharm开始编写脚本

这种情况也可以不需要开启Appium-Desktop，可以在命令行快速启动appium，使用node命令，命令如下：





环境：打开安卓手机，debug模式，接入笔记本，使用adb devcies先确认设备是否连接成功。

示例：打开某个APP，并跳转至该APP的登录页面



a.获取driver


driver = webdriver.Remote('http://localhost:4723/wd/hub', d.]]></description><category></category></item><item><title><![CDATA[Appium+Python的基础操作API]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/122042875</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/122042875</guid><author>wm_296</author><pubDate>Mon, 20 Dec 2021 16:38:27 +0800</pubDate><description><![CDATA[在脚本内启动其他APP
可看我另外发布的一篇文章，谢谢~ 。链接：

获取APP的包名和界面名（手机已打开调试模式，并连接电脑）
使用aapt dump badging命令，打开命令行，首先切换到aapt.exe路径下，然后输入aapt dump badgingD:\Users\appium\11.apk 回车之后，就可以获取到11.apk这个应用的包名和界面名了
	打开命令行，输入adb shell dumpsys activityactivities &gt;d:\log.txt，然后打开log.t..]]></description><category></category></item><item><title><![CDATA[Appium环境配置]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/122035284</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/122035284</guid><author>wm_296</author><pubDate>Mon, 20 Dec 2021 13:59:53 +0800</pubDate><description><![CDATA[1.JDK配置

a.首先先下载java的开发工具JDK（这个网上资源很多，可以到官网下载：https://www.oracle.com/java/technologies/downloads/）

b.下载安装完成后，进行环境配置：

*配置JAVA_HOME

右击我的电脑--&gt;属性--&gt;高级系统设置--&gt;环境变量--&gt;用户变量--&gt;选择新建，再弹出的弹框输入

变量名：JAVA_HOME；变量值：C:\Program Files\Java\jdk1.8.0_131 （J.]]></description><category></category></item><item><title><![CDATA[MonkeyRunner、MonkeyDevice和MonkeyImage知识]]></title><link>https://blog.youkuaiyun.com/wm_296/article/details/121661429</link><guid>https://blog.youkuaiyun.com/wm_296/article/details/121661429</guid><author>wm_296</author><pubDate>Sat, 04 Dec 2021 14:49:58 +0800</pubDate><description><![CDATA[1.MonkeyRunner的基本使用

1.1简介

通过编写Monkeyrunner api 使用python模拟控制安卓设备上的应用



1.2与Monkey的区别

MonkeyRunner要通过api发送指令和事件来控制设备，而Monkey是直接运行在设备/模拟器上通过adb shell 命令生成随机事件进行测试



1.3Monkeyrunner的存放路径

位于Android\Sdk\tools\bin下



1.4Monkeyrunner的特点

①可以进行功能测试，包括模拟点击、滑动]]></description><category></category></item></channel></rss>