精华内容
下载资源
问答
  • TestProject Python SDK入门

    万次阅读 2020-07-31 14:09:06
    使用TestProject Python SDK,您可以使用TestProject平台的功能执行Selenium和Appium测试。这意味着您将受益于HTML和PDF中的自动测试报告,Selenium浏览器驱动程序的自动更新和配置,协作报告仪表板,以及更多其他...

    使用TestProject Python SDK,您可以使用TestProject平台的功能执行Selenium和Appium测试。这意味着您将受益于HTML和PDF中的自动测试报告,Selenium浏览器驱动程序的自动更新和配置,协作报告仪表板,以及更多其他功能。

     

    安装TestProject Python SDK

    TestProject Python SDK是100%免费和开源的,并以PyPI软件包的形式提供。您可以使用pip安装软件包:

    pip install testproject-python-sdk

     

    这将安装SDK及其依赖项。为了防止项目之间的版本冲突,建议使用虚拟环境来开发测试。

    像所有TestProject SDK一样,Python SDK使用TestProject Agent执行测试。该代理负责浏览器驱动程序的安装和配置以及发送TestProject平台的报告。

    默认情况下,SDK将通过其默认地址http://localhost:8585与代理进行通信。如果要在其他端口甚至是完全不同的计算机上运行代理,则可以通过将环境变量设置为正确的地址来配置TP_AGENT_URL正确的地址。

    配置您的开发者令牌

    要与代理进行通信,您需要开发者令牌。您可以通过从https://app.testproject.io/#/integrations/sdk获取令牌,并使用令牌值设置环境变量来配置SDK以使用它TP_DEV_TOKEN

    创建您的第一个测试

    在安装和设置SDK之后,是时候开始编写我们的第一个测试💪

    from src.testproject.sdk.drivers import webdriver src.testproject.sdk.drivers import webdriver
    def simple_test():def simple_test():    driver = webdriver.Chrome()= webdriver.Chrome()
        driver.get("https://example.testproject.io/web/").get("https://example.testproject.io/web/")
        driver.find_element_by_css_selector("#name").send_keys("John Smith").find_element_by_css_selector("#name").send_keys("John Smith")    driver.find_element_by_css_selector("#password").send_keys("12345").find_element_by_css_selector("#password").send_keys("12345")    driver.find_element_by_css_selector("#login").click().find_element_by_css_selector("#login").click()
        passed = driver.find_element_by_css_selector("#logout").is_displayed()= driver.find_element_by_css_selector("#logout").is_displayed()
        print("Test passed") if passed else print("Test failed")print("Test passed") if passed else print("Test failed")
        driver.quit().quit()
    
    if __name__ == "__main__":if __name__ == "__main__":    simple_test()()

     

    如果您已经熟悉用Python开发基于Selenium的测试,那么这些代码应该不难理解。让我们运行它,看看会发生什么!但首先,请确保您的TestProject代理正在运行。 

    运行测试

    假设我们刚才看到的示例测试驻留在名为的Python模块中。由于使用使该模块可运行,因此我们只需执行以下命令即可运行此测试:web_test.pyif __name__ == “__main__”

     

    python web_test.py

    这将从TestProject代理请求一个Chrome驱动程序实例,运行测试并将结果报告给TestProject平台。如果您正确配置了开发人员令牌和代理地址,您将在控制台中看到以下输出,表明我们的测试已成功执行:

    <...>Test passed2020-07-13 09:30:03,884 INFO Connection to Agent at http://127.0.0.1:8585 closed successfully
    Process finished with exit code 0

    让我们看一下生成的报告。

    检查测试报告

    TestProject代理将自动将您的测试结果报告发送给TestProject平台。如果您转到https://app.testproject.io/#/reports,则会看到一个名为“ 未命名项目 ”的项目

    如果单击此按钮,则将看到与此项目关联的测试运行的概述。这将包含一个名为“ web_test ”的作业(该作业名称是自动从Python模块名称派生的)和一个通过的测试名为“ simple_test ”(测试名称是从测试方法名称中自动派生的):

    如您所见,该测试被标记为已通过,并且浏览器驱动程序实例执行的所有单个操作都直接报告给右侧,无需额外配置!

    TestProject Python SDK为您提供了多种自定义报告的选项。我们将在后续文章中详细介绍这些内容(即将发布!)。不过,值得一提的是,输入密码字段的值会自动删除,如您在报告的第5步中所见。如果需要,也可以关闭此功能。您将很快在有关报告的文章中看到。 

    支持的单元测试框架

    当前,TestProject Python SDK支持unittest和pytest单元测试框架。如果您已经有基于unittest 或pytest 的Selenium测试,将它们转换为TestProject驱动的测试非常容易。

    让我们看一下这个基于pytest 的示例。顺便说一下,对于unittest ,该过程是完全相同的:

    from selenium import webdriverfrom tests.pageobjects.web import LoginPage, ProfilePagedef test_example_using_chrome():    driver = webdriver.Chrome()    LoginPage(driver).open().login_as("John Smith", "12345")    assert ProfilePage(driver).greetings_are_displayed() is True    driver.quit()

    假设您已将TestProject SDK添加为项目的依赖项,并且已按照本文前面的说明配置了代理和开发人员令牌,则只需更改此import语句即可:

    from selenium import webdriverfrom src.testproject.sdk.drivers import webdriver

    假设该测试是example_test名为的软件包中模块的一部分tests。如果使用以下命令运行此测试:

     

    pytest tests\example_test.py

    并再次转到TestProject报告页面,您将看到如下所示的报告:

    SDK 分别从测试方法名称和程序包名称自动导出了测试名称(' test_example_using_chrome')和作业名称(' example_test ' )。另外,如果您使用的是pytest 或unittest ,SDK还将根据测试模块所在的软件包自动推断项目名称。如果您愿意,也可以自定义项目,作业和测试名称。您很快就会在报告文章中看到如何做到这一点。

    推荐阅读

     

    展开全文
  • Project Python是在一篇微信文章里面发现的一个交互式python编程练习网站。 我个人对python编程真的只了解一点点!!!以前有看过一点视频(网易云课堂上的python编程学习视频)没看完,买的Python基础教程(第2版)...

    Project Python是在一篇微信文章里面发现的一个交互式python编程练习网站。

    我个人对python编程真的只了解一点点!!!以前有看过一点视频(网易云课堂上的python编程学习视频)没看完,买的Python基础教程(第2版)也看了一点点,没有全部过完一遍,后面觉着应该把它当做字典式的工具书用于查阅。

    说实话我也不知道学习哪个好,网上资源挺多。菜鸟教程,廖雪峰老师的教程,各种python基础编程视频教程,各种利用python开发的教程(爬虫、数据分析、深度学习等等);还有各种书籍,笨办法学习python(一个外国人写的,后面有时间想看看这本),python核心编程。我一直希望能系统地学习python,让python编程水平有一个质的提升,但是之前的学习都是走马观花、蜻蜓点水式的,所以现在觉得想要达到质的提升还是需要静下心来,系统学习,慢慢沉淀,慢慢激烈。目前我就打算认真地过一遍Project Python这个网站,写下这个博客一来是为了记录学习到的新知识,二来是鞭策、督促自己进行系统地、踏实地学习。

    推荐这个网站的微信文章是这个这次拿下Python全靠它了!一个交互式的学习资源!当中把这个网站称为一本免费的交互式书籍它通过使用图形、动画和游戏来教你用 Python编写代码。后面你还将学到解决经典计算机科学问题的方法,软件设计的原则,以及如何分析算法性能。即使基础薄弱你也不会感到吃力;在第一章结束时,你就可以学会用 Python 画出一个笑脸。

    网站首页如下图所示。网站的内容是英文的,但是并不是长篇大论,属于简单基础的英语,可以不用担心被英语难住。赶快开始吧。

    展开全文
  • 我将假设您已经下载了Python SDK,已经配置了代理和开发人员令牌,并且代理正在运行。如果没有,您可以在这篇文章中阅读如何做。另外,我将假设您已经创建并启动了运行Android的模拟器。 让我们以这个测试为例: ...

    使用模拟器在Android上运行移动网络测试

    我将假设您已经下载了Python SDK,已经配置了代理和开发人员令牌,并且代理正在运行。如果没有,您可以在这篇文章中阅读如何做。另外,我将假设您已经创建并启动了运行Android的模拟器。

    让我们以这个测试为例:

    import pytestfrom appium import webdriverfrom tests.pageobjects.web import LoginPage, ProfilePage@pytest.fixturedef driver():    desired_capabilities = {        "udid": "emulator-5554",        "browserName": "chrome",        "platformName": "Android",    }    driver = webdriver.Remote(desired_capabilities=desired_capabilities)    yield driver    driver.quit()def test_example_on_chrome_on_android(driver):    LoginPage(driver).open().login_as("John Smith", "12345")    profile_page = ProfilePage(driver)    profile_page.update_profile(        "United States",        "Street name and number",        "john.smith@somewhere.tld",        "+1 555 555 55",    )    assert profile_page.saved_message_is_displayed() is True

    如您所定义的desired_capabilities,您可以在名称为的模拟器上运行此测试,该模拟器运行Android。指定浏览器名称(即)表示我们正在运行移动Web测试。emulator-5554chrome

    要将这个Appium测试变成一个基于TestProject的测试,类似于基于Selenium的测试,您需要做的就是更改此import语句:

     

    from appium import webdriver# 到from src.testproject.sdk.drivers import webdriver

    另外:您不再需要运行自己的Appium服务器,因为TestProject Agent可以为您充当Appium服务器!

    运行此测试时,它将在您的Android模拟器上启动Chrome浏览器并运行该测试:

    测试完成执行后,SDK将报告发送到代理,代理将依次在TestProject平台上创建新的测试报告:

    使用真实设备在iOS上运行本机应用测试

    如您先前所读,TestProject Python SDK同时支持Android和iOS。让我们看一个示例测试,该示例测试在真实iPhone上运行的本机iOS应用程序:

    import pytestfrom src.testproject.sdk.drivers import webdriverfrom tests.pageobjects.android import LoginPage, ProfilePage@pytest.fixturedef driver():    desired_capabilities = {        "udid": "<my_device_udid_here>",        "deviceName": "iPhone van Bas",        "browserName": "",        "platformName": "iOS",        "bundleId": "io.testproject.Demo",    }    driver = webdriver.Remote(desired_capabilities=desired_capabilities)    yield driver    driver.close_app()    driver.quit()def test_example_on_native_ios_app(driver):    LoginPage(driver).login_as("John Smith", "12345")    profile_page = ProfilePage(driver)    profile_page.update_profile(        "United States",        "Street name and number",        "john.smith@somewhere.tld",        "+1 555 555 55",    )    assert profile_page.saved_message_is_displayed() is True

     

    没有指定浏览器desired_capabilities,这表示此测试是针对本机应用程序运行的。以下是在测试执行过程中使用的实际iOS设备的屏幕截图:

    fact 有趣的事实:此处使用的iOS设备已连接到Windows计算机!通过TestProject,您可以在iOS设备上运行测试,而无需运行macOS或XCode,也无需自己运行Appium服务器。

    正如我们在发送到TestProject的报告中看到的那样,该测试也通过了:

    使用模拟器在Android上运行移动网络测试

    我将假设您已经下载了Python SDK,已经配置了代理和开发人员令牌,并且代理正在运行。如果没有,您可以在这篇文章中阅读如何做。另外,我将假设您已经创建并启动了运行Android的模拟器。

    让我们以这个测试为例:

    import pytestfrom appium import webdriverfrom tests.pageobjects.web import LoginPage, ProfilePage@pytest.fixturedef driver():    desired_capabilities = {        "udid": "emulator-5554",        "browserName": "chrome",        "platformName": "Android",    }    driver = webdriver.Remote(desired_capabilities=desired_capabilities)    yield driver    driver.quit()def test_example_on_chrome_on_android(driver):    LoginPage(driver).open().login_as("John Smith", "12345")    profile_page = ProfilePage(driver)    profile_page.update_profile(        "United States",        "Street name and number",        "john.smith@somewhere.tld",        "+1 555 555 55",    )    assert profile_page.saved_message_is_displayed() is True

    如您所定义的desired_capabilities,您可以在名称为的模拟器上运行此测试,该模拟器运行Android。指定浏览器名称(即)表示我们正在运行移动Web测试。emulator-5554chrome

    要将这个Appium测试变成一个基于TestProject的测试,类似于基于Selenium的测试,您需要做的就是更改此import语句:

    from appium import webdriver# 到from src.testproject.sdk.drivers import webdriver

    另外:您不再需要运行自己的Appium服务器,因为TestProject Agent可以为您充当Appium服务器!

    运行此测试时,它将在您的Android模拟器上启动Chrome浏览器并运行该测试:

    测试完成执行后,SDK将报告发送到代理,代理将依次在TestProject平台上创建新的测试报告:

    使用真实设备在iOS上运行本机应用测试

    如您先前所读,TestProject Python SDK同时支持Android和iOS。让我们看一个示例测试,该示例测试在真实iPhone上运行的本机iOS应用程序:

    import pytestfrom src.testproject.sdk.drivers import webdriverfrom tests.pageobjects.android import LoginPage, ProfilePage@pytest.fixturedef driver():    desired_capabilities = {        "udid": "<my_device_udid_here>",        "deviceName": "iPhone van Bas",        "browserName": "",        "platformName": "iOS",        "bundleId": "io.testproject.Demo",    }    driver = webdriver.Remote(desired_capabilities=desired_capabilities)    yield driver    driver.close_app()    driver.quit()def test_example_on_native_ios_app(driver):    LoginPage(driver).login_as("John Smith", "12345")    profile_page = ProfilePage(driver)    profile_page.update_profile(        "United States",        "Street name and number",        "john.smith@somewhere.tld",        "+1 555 555 55",    )    assert profile_page.saved_message_is_displayed() is True

     

    没有指定浏览器desired_capabilities,这表示此测试是针对本机应用程序运行的。以下是在测试执行过程中使用的实际iOS设备的屏幕截图:

    fact 有趣的事实:此处使用的iOS设备已连接到Windows计算机!通过TestProject,您可以在iOS设备上运行测试,而无需运行macOS或XCode,也无需自己运行Appium服务器。

    正如我们在发送到TestProject的报告中看到的那样,该测试也通过了:

    如您所见,使用TestProject Python SDK(或   Java或C# SDK),您可以轻松地将现有基于Appium的测试转换为TestProject驱动的测试,无论它们是用于Android还是iOS,都可以使用仿真器或真实设备,在macOS,Linux和Windows上测试移动Web或本机应用程序。

     

    TestProject Python SDK入门

    使用Selenium WebDriver,Python和Chrome编写您的第一个Web测试

    使用Python和Chrome安装Selenium WebDriver

    使用Pytest创建一个Python测试自动化项目

    K6性能测试工具的使用入门

    不测的秘密 精准测试之路  ~ 文末福利

    Selenium Firefox驱动程序:使用Firefox浏览器自动进行测试

                        

     

     

    展开全文
  • Python_puzzle_project Python Module Project-15益智游戏
  • python-projectpython-project
  • Projecteuler_python Projecteuler中的Python问题答案
  • pythonProject:用于Python学习
  • pythonProject-源码

    2021-03-10 14:41:31
    pythonProject
  • pythonProject:我的Python项目清单
  • python-fluent:Project Fluent的Python实现
  • python_project-源码

    2021-02-18 14:54:30
    python_project
  • pythonProject:这是我第一个学习pythonpython项目
  • Python Project

    千次阅读 2009-12-18 15:28:00
    * PYTHON 趋向于将功能相近的对象放进一个MODULE(文件)里,不用担心对象会太大,因为如果对象太大了,那它可能是做的事性太多了 需要被重构、分解。 * 开发辅助工具是PYTHON的一个强项。如构建工具、统计工具...

    * PYTHON 趋向于将功能相近的对象放进一个MODULE(文件)里,不用担心对象会太大,因为如果对象太大了,那它可能是做的事性太多了

       需要被重构、分解。

     

    * 开发辅助工具是PYTHON的一个强项。如构建工具、统计工具等等,只要有需求,它一定办得到,因为这些应用对安全和性能要求不高,反

       而对开发的简洁性有很高的乞求。

     

    * 只把会发生意外的那一小部分放进try里,把try成功后的操作放进else里,try失败后的操作放进except里,把不管成功或失败都需要的操作

       放进finally里(为什么不写在try-catch块后呢?因为这个try-catch块代表一个风险操作集合的语意)

     

    * PYTHON中可以简化操作的内置语法有:for/else(如果for集合为空则执行else语句)

     

    Python 是Google的3个官方语言之一,在Google的应用开发中大量应用,不过,更多的是应用在开发辅助工具上:

     

     * The Google build system.All of Google's corporate code is checked into a repository and the dependency and building of this           code is managed by python.Greg mentioned that to create code.google.com took about 100 lines of python code.  But since it          has so many dependencies,the build system generated a 3 megabyte 

     

     * Packaging.  Google has an internal packaging format like RPM.  These packages are created using python.

     

     * Binary Data Pusher.  This is the area where Alex Martelli is working, on optimizing pushing bits between thousands of servers

     

     * Production servers.  All monitoring, restarting and data collection functionality is done with python

     

     * Reporting.  Logs are analyzed and reports are generated using Python.

     

     * A few services including code.google.com and google groups.  Most other front ends are in C++ (google.com) and Java (gmail).        All web services are built on top of a highly optimizing http server wrapped with SWIG.

     

    ##########################################################


    Python doesn't force you into Java's nasty one-class-per-file style. In fact, it's not even considered good style to put each class in a separate file unless they are huge. (If they are huge, you probably have to do refactoring anyway.) Instead, you should group similar classes and functions in modules. For example, if you are writing a GUI calculator, your package layout might look like this:

    /amazingcalc
       /
    __init__.py # This makes it a Python package and importable.
       
    /evaluate.py # Contains the code to actually do calculations.
       
    /main.py # Starts the application
       
    /ui.py # Contains the code to make a pretty interface

     

    They'll probably end up fairly large – Teifion Dec 24 '08 at 17:43
    @Teifion: Large? If a class is "large" (i.e., many hundreds of lines of code), it's probably doing too much. 
    Good practice is to decompose such a large class into something easier to understand. Unrelated to using many
    files. – S.Lott Dec 24 '08 at 22:28
    Ben Blank: One public class per file is what you do when you've got a very complex language and a very slow compiler. If you simplify your language, you get faster compilers and you don't need that administrative hack
    I've always felt that one-class-per-file was a misfeature of the Java language. A well-intentioned one, perhaps, but still.

    PYTHON is a language for creativity

    展开全文
  • python_project

    2018-01-09 14:56:01
    最近做了一个为期两周的小项目,是一个很简单的工作流。内容包括员工的加班申请,组长进行加班审批和公布加班需求。...对这次项目做一个简单的总结,内容分别在两篇文章中:python_project_mysql, python_project_mysql
  • pythonProject.rar

    2019-09-15 14:54:25
    分词的python例子;
  • python_project2 使用python构建的篮球统计工具。
  • Scaffold a Flask Project - Real Python Scaffold a Flask Project - Real Python pos...
  • Python_plotly_project-源码

    2021-03-19 00:07:01
    Python_plotly_project
  • 1.下载python(建议2.7版本)并且安装。...3.在cocos2d-x-2.2的目录中进入到\tools\project-creator目录下,按住shift右击,选择在当前位置打开命令窗口。   4.运行如下语句: python crea...
  • 【Pycharm】为你的Project设置python版本

    千次阅读 2019-05-30 11:53:36
    File-Settings->Project->Project Interpreter 选择需要配置的python版本 设置完成后,创建工程时选择已经存在的解释器 工程中代码运行时所用的python即为python3了 ...
  • IDEA 创建 Python Project

    2018-10-27 14:14:46
    1、安装插件 打开IDEA,FILE-&amp;gt;SETTINGS-&amp;gt;Plugins,搜索Python,找到属性是LANGUAGES的那个,点击安装,然后重启。...安装成功后新建项目时可以选择Python啦,记得自己配置SDK哦! ...
  • no python project interpreter问题

    千次阅读 2019-05-06 22:43:00
    已经遇到过好几次了,没有项目编译器问题,解决方法是添加编译器。 1、File---Settings 2、Project Interpreter下拉选择python可执行文件,apply---ok完成。
  • pycharm运行python程序出现no python interpreter configured for project 在创建新项目时注意选择python interpreter 我的pycharm版本:2019.3.1 解决办法:
  • no python interpreter configured for the project

    万次阅读 多人点赞 2017-04-21 13:26:30
    初次安装完PyCharm后,新建项目时,遇到了No Python interpreter ...Python–Preferences–Project Interpreter–Python Interpreter 点击“+”号选择系统安装的Python。然后再返回Project Interpreter,选择刚添加的
  • 当新建或者打开Python项目时,如果出现No Python interpreter configured for the project 的提示,意思是没有解析器,可能是安装Python之后,没有添加系统环境变量的原因,或者是误操作导致Pycharm找不到解析器。...
  • No Python interpreter configured for the project 问题解释:没有为项目配置python解释器 解决办法:参考我的这篇微博配置 如何将python搭建、集成到pycharm上,如何集成pycharm、python,如何为pycharm添加python...
  • 打开pycharm,新建python项目时,提示no python interpreter configured for the project,可以理解为没有找到解释器,因此可手动设置添加解释器。 解决方法: 步骤一:首先,打开File-Settings 步骤二:其次,...
  • Python_Project中新建app

    2018-11-28 10:23:33
    1.新建Django项目 打开PyCharm-&gt;File-&gt;new Project-&gt;Django 得到如下图目录结构,...python manage.py startapp app_name 或 django-admin.py startapp app_name 回车运行后,项目中增加...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,336
精华内容 18,934
关键字:

projectpython

python 订阅