Package: xiaobaiauto2
简介xiaobaiauto2是一套自动化框架，功能覆盖UI自动化与API自动化
意在帮助对自动化有更多需求且过多时间写代码的人群，让大家的时间
花在业务的实现上架构开始使用了解测试用例目录test
|
|--__init__.py
|
|--WebTest 
|   |
|   |--conftest.py
|   |--test_WebUI.py
|
|--APPTest
|   |
|   |--conftest.py
|   |--test_Xiaobai_APP_Case1.py
|   |--test_Xiaobai_APP_Case2.py
|
|--APITest
|   |
|   |--test_cases.py
|   |--yewua.py了解关键词序号CMDkey1打开网页OPENURL2点击CLICK3输入SENDKEY4刷新REFRESH5后退BACK6关闭CLOSE7退出QUIT8标签TAG9属性ATTR10URLCURL11标题ITLE12内嵌页FRAME13标签页[序号(1开始)]WINDOW14JS_确定ALERT015JS_取消ALERT116JS_输入框ALERT217JS_文本ALERT318停止WAIT19脚本SCRIPT20添加cookieADDCOOKIE21滑屏SWIPE22截屏DSCREENSHOT23元素截图ESCREENSHOT24识别验证码FINDTEXT25坐标LOCATION26网页源码PAGESOURCE修改脚本参考test目录下面的脚本@pytest.mark.xiaobai_web
def test_Case1(browser):
    web_action(browser, cmd=cmd.打开网页, loc='', data='http://www.baidu.com')
    web_action(browser, cmd=cmd.输入, loc='//*[@id="kw"]', data='小白科技')
    web_action(browser, cmd=cmd.点击, loc='//*[@id="su"]')
    web_action(browser, cmd=cmd.wait, data=3)
    web_action(browser, cmd=cmd.标题, contains_assert='小白')关键词的使用，看上面示例亦可（xiaobaiauto2>0.1.5.0）1 导入cmd类from xiaobaiauto2.xiaobaiauto2 import cmd2 cmd类调用属性cmd.关键词若感觉关键词不足以使用，可以直接使用原生方法，示例如下browser.find_element(by=By.ID, value='id属性值').click()代码执行之前，若您需要发送邮件，请将test_first方法中的email的参数值进行自行修改即可备注若APP测试需要获取toast信息可以写一个方法添加到自己的项目中,代码样例如下：def find_toast(self, message, timeout, poll_frequency):
     new_message = f"//*[@text=\'{message}\']"
     element = WebDriverWait(self.driver, timeout, poll_frequency).until(
         EC.presence_of_element_located((By.XPATH, new_message)))
     return element.text使用1、命令行运行脚本pytest --html=report.html --self-contained-html
or
pytest --html=report.html --self-contained-html -m xiaobai_web
or
pytest --html=report.html --self-contained-html -o log_cli=true -o log_cli_level=INFO2、定时任务界面运行脚本（CMD命令）xiaobaiauto2Timer3.1、xiaobaiauto2Api将raw数据转换成python代码(版本>0.1.3.1可用)xiaobaiauto2Api -h    # 帮助文档提示
xiaobaiauto2Api -f *.txt -s *.py
xiaobaiauto2Api -f *.txt -x 2
xiaobaiauto2Api -f *.saz -x 2
xiaobaiauto2Api -f *.har -x 2
xiaobaiauto2Api -f *.har -x 3
xiaobaiauto2Api -d D:\example3.2、xiaobaiauto2 >= 0.1.4.5 支持c参数xiaobaiauto2Api -c 1 -f 1.har,2.har
xiaobaiauto2Api -c 1 -f 1.har,2.har -d E:\example
xiaobaiauto2Api -c 1 -f 1.har,2.har -d E:\example -s 1_2_compare
xiaobaiauto2Api -c 1 -f 1.har.2.har -d E:\example -x 3   # 生成*.jmx(含提取器、参数化)[>=0.1.7.2]3.3、xiaobaiauto2 >= 0.1.5.5 支持t参数xiaobaiauto2Api -t api        // 生成api测试模板
xiaobaiauto2Api -t web        // 生成web测试模板
xiaobaiauto2Api -t app        // 生成app测试模板3.4、xiaobaiauto2 >= 0.1.6.3 支持i与v参数(请看3.6) 不指定版本默认安装最新版哦xiaobaiauto2Api -i jdk -v 8                     // 安装jdk8
xiaobaiauto2Api -i jmeter -v 5.3                // 安装jmeter5.3
xiaobaiauto2Api -i chromedriver -v 88           // 安装chromedriver的88版本
xiaobaiauto2Api -i allure -d "D:\Program Files" // 安装allure(会有些慢哦)3.5、xiaobaiauto2 >= 0.1.6.5 支持mock模拟接口from xiaobaiauto2.xiaobaiauto2 import mock, MockServer

@mock(uri='/login', response={"errcode": 200, "msg": "登录成功", "data": {"token": "123456"}})
@mock(uri='/register', response={"errcode": 200, "msg": "注册成功", "data": {}})
@MockServer(uri='/index', response={"errcode": 200, "msg": "首页成功", "data": {}})
def run(): pass

if __name__ == '__main__':
    run(port=7777)导入mock方法from xiaobaiauto2.xiaobaiauto2 import mock, MockServer定义mock接口，mock与MockServer无区别，uri为接口路径，response为接口返回值，run为被装饰的函数名称可自定义@mock(uri='/login', response={"errcode": 200, "msg": "登录成功", "data": {"token": "123456"}})
@mock(uri='/register', response={"errcode": 200, "msg": "注册成功", "data": {}})
@MockServer(uri='/index', response={"errcode": 200, "msg": "首页成功", "data": {}})
def run(): pass启动mock接口服务， run为上面被装饰的方法名，port为监听的端口(默认6666)if __name__ == '__main__':
    run(port=7777)jmeter尝试？api1: http://127.0.0.1:7777/login
api2: http://127.0.0.1:7777/register
api3: http://127.0.0.1:7777/index3.6、xiaobaiauto2 >= 0.1.6.6 支持软件自动安装与环境配置默认环境为用户环境，配置的是用户环境变量，若要配置系统环境变量，请使用管理员运行即可xiaobaiauto2Api -i jdk -v 8 -d D:\
xiaobaiauto2Api -i jmeter -v 5.3 -d D:\
xiaobaiauto2Api -i chromedriver -v 88
xiaobaiauto2Api -i jenkins -d D:\tomcat\webapps
xiaobaiauto2Api -i git
xiaobaiauto2Api -i node -v 15 -d D:\3.7、xiaobaiauto2 >= 0.1.8.3 支持软件自动安装与环境配置管理系统代理服务器（查看、设置、关闭、验证）xiaobaiauto2Proxy -h                        # 查看帮助文档
xiaobaiauto2Proxy                           # 查看系统代理是否开启
xiaobaiauto2Proxy -e 0 -p 127.0.0.1:8080    # 开启系统代理
xiaobaiauto2Proxy -e 1                      # 关闭系统代理
xiaobaiauto2Proxy -c 1                      # 验证系统代理是否可用3.8、xiaobaiauto2 >= 0.2 支持adb命令，提前打开APP单设备监控APP的点击，点击的路径自动生成XPath表达式xiaobaiauto2App多设备单机监控APP的点击，点击的路径自动生成XPath表达式xiaobaiauto2App -d 127.0.0.1:62001    // 指定设备号进行监控
xiaobaiauto2App -i 1                  // 指定序号为1的设备进行监控3.9、xiaobaiauto2>=0.2.6 支持验证码自动化识别并填充from xiaobaiauto2.xiaobaiauto2 import verify_check

...
# 验证码图片元素定位
image_element = browser.find_element(by=By.XPATH, value='xpath表达式')
# 验证码输入框元素定位
input_element = browser.find_element(by=By.XPATH, value='xpath表达式')
verify_check(image_element, input_element)4.0、xiaobaiauto2>=0.2.9 支持Browser、Fiddler、Charles导出cURL转为requests代码启动xiaobaiauto2Copy服务:xiaobaiauto2CopyBrowserF12->network->requst->copy->copy cURL(bash)Fiddler（不推荐，会缺少请求数据）File->Export Session->Selected Session->cURL ScriptCharlesrequest->Copy cURL Request4.1、xiaobaiauto2>=0.3.7 支持简化版的Email发送，方便自动化发送邮箱样例1（执行完用例文件之后，再执行本脚本，即可完成测试报告的及时发送）fromxiaobaiauto2.utils.xiaobaiauto2Emailimportxemail# 建立连接，password为授权码不是登录密码x=xemail(smtp_server='smtp.163.com',smtp_port=25,username='xxx@163.com',password='授权码')# 发送邮件,to收件人可以多人，files附件可以多个文件，均使用','逗号分割x.send(to='1@163.com,2@163.com,3@163.com',subject='自动化测试报告标题',content='报告内容',files='report.html')样例2(因为发送邮件被封到teardown_module函数中，所以发送的是上一次执行的结果)# filename: test_xiaobai_testcase.pyimportpytestfromxiaobaiauto2.utils.xiaobaiauto2Emailimportxemaildeftest_other():''' 其它测试用例代码 '''defteardown_module():# 此处发送的报告是上次测试的结果# 建立连接，password为授权码不是登录密码x=xemail(smtp_server='smtp.163.com',smtp_port=25,username='xxx@163.com',password='授权码')# 发送邮件,to收件人可以多人，files附件可以多个文件，均使用','逗号分割x.send(to='1@163.com,2@163.com,3@163.com',subject='自动化测试报告标题',content='报告内容',files='report.html')其他帮助163邮箱怎么开启SMTP发邮件QQ邮箱怎么开启SMTP发邮件Pytest官网帮助文档Android调试桥(adb)官网帮助文档更新日志版本功能0.0.1添加邮件发送，用例排序，chrome提示框禁止等等0.1.0.1添加自动执行任务功能及UI界面0.1.1fix缺陷，cmd执行xiaobaiauto2Timer0.1.2fix缺陷0.1.3新增验证码识别,支持 *.png  *.jpg *.jpeg ，新增部分关键词(暂已关闭)0.1.3.1fix缺陷0.1.4.0新增xiaobaiauto2Api命令行工具，可以将raw请求数据转换成python代码0.1.4.1fix缺陷0.1.4.2优化与新增Fiddler的saz文件支持0.1.4.3优化代码0.1.4.4优化与新增charles的har文件支持,支持批量脚本转换0.1.4.5优化与新增比较两个har文件并转为Python代码0.1.4.6fix并支持fiddler导出的har文件转为Python代码0.1.5.0fix并优化api_action0.1.5.1优化xiaobaiauto2Api与web_action支持cmd调用关键词0.1.5.2新增apiTestCase装饰器0.1.5.3修复xiaobaiauto2Api部分bug0.1.5.4fix0.1.5.5add 选项-t template 参考xiaobaiauto2Api -h0.1.5.6fix0.1.5.7fix0.1.6.0add 参数化符{变量}系统自动识别并替换为预设值0.1.6.1fix0.1.6.2fix0.1.6.3add -i, -v 新增命令行安装软件支持mac系统0.1.6.4fix0.1.6.5add mock模拟接口0.1.6.6优化 -i -v 支持jdk jmeter chromdriver jenkins git node0.1.7.0fix0.1.7.1fix -i 新增支持allure与svn0.1.7.2fix -x 新增支持转为jmeter(*.jmx)脚本0.1.7.3fix0.1.7.5fix0.1.7.6优化jmx数据格式0.1.7.7优化0.1.8.0优化jmx数据格式0.1.8.1优化jmx的参数化实现0.1.8.2优化jmx的实现0.1.8.3新增xiaobaiauto2Proxy系统代理管理模块0.1.8.5优化jmx的实现0.1.8.6优化jmx的实现0.1.8.7优化jmx的实现0.1.8.8优化xiaobaiauto2App0.1.9优化xiaobaiauto2App0.1.9.1优化mac的环境变量设置0.1.9.2fix0.1.9.3fix0.1.9.5fix0.1.9.6新增xiaobaiauto2安装软件tomcat0.1.9.7fix0.1.9.8fix 支持下载fiddler与postman0.1.9.9fix 模板的下载路径报错问题0.2xiaobaiauto2App0.2.1更新0.2.2fixed0.2.3fix关键词与xiaobaiauto2App的BUG0.2.5优化xiaobaiauto2App输出代码结构0.2.7新增验证码识别verify_check，库存在兼容问题，自行安装依赖！0.2.8新增浏览器copy->cURL(bash转requests代码)0.2.9新增Fiddler/Charles->cURL(bash转requests代码)0.3优化代码，修复BUG0.3.1优化代码，修复BUG0.3.2优化代码0.3.3优化代码0.3.5Fix BUG0.3.6优化xiaobaiauto2Email新增简化版邮件发送0.3.7优化xiaobaiauto2Email0.5优化软件安装，window默认系统环境变量设置且立即生效0.5.1Fix BUG