How to use axios method in Appium Base Driver

Best JavaScript code snippet using appium-base-driver

api.js

Source:api.js Github

copy

Full Screen

1import axios from 'axios';2function objectToFormData(object) {3  if (object instanceof FormData) {4    return object;5  }6  const result = new FormData();7  for (const key in object) {8    if (object.hasOwnProperty(key)) {9      const item = object[key];10      let preparedItem;11      if (item instanceof Blob) {12        preparedItem = item;13      } else if (typeof item === 'object') {14        preparedItem = JSON.stringify(item);15      } else {16        preparedItem = item;17      }18      preparedItem && result.append(key.toString(), preparedItem);19    }20  }21  return result;22}23export default {24  auth: {25    register: (data, config) =>26      axios.post('v1/register-without-drotr', objectToFormData(data), config),27    getGuest: (lang, config) =>28      axios.post('v1/guest/get', objectToFormData({lang}), config),29    authenticate: (data, config) =>30      axios.post('oauth/token', objectToFormData(data), config),31    // axios.post('v1/register', objectToFormData(data), config)32  },33  user: {34    getUser: () =>35      axios.get('/v1/me'),36    subscribeUser: ({data, config = null}) =>37      axios.post('v1/users/subscribe', data, config),38    getUserFeeds: data =>39      axios.post('v1/me/feeds/new/all', data),40    viewFeeds: data =>41      axios.post('v1/me/feeds/view', data),42    unwatchedFeeds: () =>43      axios.get('v1/me/feeds/unwatched?by_type=true'),44    changeMySettings: data =>45      axios.post('v1/me/settings/edit', data),46    sendChinChin: data =>47      axios.post('v1/me/chats/messages/chin', data),48    checkChat: data =>49      axios.post('v1/me/chats/check', data),50    acceptGift: data =>51      axios.post('v1/me/gifts/accept', data),52    changeAvatar: data =>53      axios.post('v1/me/settings/avatar/change', data),54    editBaseSettings: data =>55      axios.post('v1/me/settings/base/edit', data),56    editSettings: data =>57      axios.post('v1/me/settings/edit', data),58    createUpload: data =>59      axios.post('v1/uploads/create', data),60    loadUpload: (data, config) =>61      axios.post('v1/uploads/load', data, config),62    loadImageUpload: (data, config) =>63      axios.post('v1/uploads/load-image', data, config),64    getBookmarks: data =>65      axios.post('v1/me/posts/bookmarks/all', data),66    getMentions: data =>67      axios.post('v1/me/posts/mentions/all', data),68    addToBlackList: data =>69      axios.post('v1/me/settings/blacklist/add', data),70    deleteFromBlackList: data =>71      axios.post('v1/me/settings/blacklist/delete', data),72    getRecommendations: data =>73      axios.post('v1/me/recommendations', data),74    getAllSubscribtionsPosts: data =>75      axios.post('v1/me/posts/subscriptions/all', data),76    getOutgoingRequests: data =>77      axios.post('v1/users/subscribers/requests/all', data),78    deleteRequest: data =>79      axios.post('v1/users/subscribers/requests/delete', data),80    getAdminStatistic: () =>81      axios.get('v1/me/statistic/admin/all?from=2017-01-01&to=today'),82    getWalletInfo: () =>83      axios.get('v1/me/wallet/info'),84    getCoinPacks: () =>85      axios.get('v1/me/wallet/coinpacks/all'),86    buyCoinPack: params =>87      axios.get('v1/me/wallet/coinpacks/buy', params)88  },89  users: {90    getAll: data =>91      axios.post('v1/users/all', data),92    getUser: data =>93      axios.post('v1/users/get', data),94    subscribeUser: data =>95      axios.post('v1/users/subscribe', data),96    reportPost: data =>97      axios.post('v1/users/posts/report', data),98    getPostStatistics: data =>99      axios.post('v1/users/posts/statistics/get', data),100    profileVisitFromPost: data =>101      axios.post('v1/users/posts/actions/add', data),102    addUserPost: (data, config) =>103      axios.post('v1/users/posts/add', data, config),104    getPost: data =>105      axios.post('v1/users/posts/get', data),106    getPosts: data =>107      axios.post('v1/users/posts/all', data),108    voteUser: data =>109      axios.post('v1/users/vote', data),110    deletePost: data =>111      axios.post('v1/users/posts/delete', data),112    sendViewedPosts: data =>113      axios.post('v1/users/posts/view', data),114    repostPost: data =>115      axios.post('v1/users/posts/repost', data),116    likePost: data =>117      axios.post('v1/users/posts/like', data),118    bookmarkPost: data =>119      axios.post('v1/users/posts/bookmark', data),120    usersSearch: data =>121      axios.post('v1/users/search', data),122    approveUser: data =>123      axios.post('v1/users/subscribers/requests/approve', data),124    getRatingHistory: data =>125      axios.post('v1/rating-history/get', data),126    deleteMentionOfCurrentUser: data =>127      axios.post('v1/users/posts/mentions/delete', data),128  },129  post: {130    makeRepost: data =>131      axios.post('v1/users/posts/repost', data),132    editPost: data =>133      axios.post('v1/users/posts/edit', data),134    searchChunks: data =>135      axios.post('v1/me/posts/search/chunks', data),136    comments: {137      delete: data =>138        axios.post('v1/users/posts/comments/delete', data),139      getAll: data =>140        axios.post('v1/users/posts/comments/all', data),141      add: data =>142        axios.post('v1/users/posts/comments/add', data)143    }144  },145  stories: {146    getAllStories: () =>147      axios.get('v1/users/stories/all'),148    deleteStory: data =>149      axios.post('v1/users/posts/delete', data),150    getActiveStories: data =>151      axios.post('v1/users/stories/get', data),152    getArchivedStories: data =>153      axios.post('v1/users/stories/archive/all', data),154    getStoryAlbums: data =>155      axios.post('v1/users/stories/albums/all', data),156    getStoryAlbum: data =>157      axios.post('v1/users/stories/albums/get', data),158    addStoryAlbum: data =>159      axios.post('v1/users/stories/albums/add', data),160    deleteStoryAlbum: data =>161      axios.post('v1/users/stories/albums/delete', data),162  },163  blacklist: {164    addToBlackList: ({data, config = null}) =>165      axios.post('v1/me/settings/blacklist/add', data, config),166  },167  gifts: {168    getMyGifts: data =>169      axios.post('v1/me/gifts/all', data),170    getAll: () =>171      axios.get('v1/gifts/all'),172    send: data =>173      axios.post('v1/me/gifts/send', data),174    sendCoins: data =>175      axios.post('v1/me/wallet/send', data),176  },177  groups: {178    getGroupSubjects: data =>179      axios.post('v1/groups/subjects/all', data),180    createGroup: data =>181      axios.post('v1/groups/create', data),182    getGroup: data =>183      axios.post('v1/groups/get', data),184    subscribeToGroup: data =>185      axios.post('v1/groups/join', data),186    getGroupVideos: data =>187      axios.post('v1/groups/videos/all', data),188    getGroupAlbums: data =>189      axios.post('v1/albums/all', data),190    getGroupPosts: data =>191      axios.post('v1/groups/posts/all', data),192    addGroupPost: data =>193      axios.post('v1/groups/posts/add', data),194    inviteToGroup: data =>195      axios.post('v1/groups/invite/add', data),196    getMyGroups: data =>197      axios.post('v1/me/groups/all', data),198    getGroups: data =>199      axios.post('v1/groups/all',data),200    getGroupSearch: (data, config) =>201      axios.post('v1/groups/search', data, config),202    deletePost: data =>203      axios.post('v1/groups/posts/delete', data),204    getGroupUsers: data =>205      axios.post('v1/groups/users/all', data),206    kickUserFromGroup: data =>207      axios.post('v1/groups/users/kick',  objectToFormData(data)),208    getGroupRequests: data =>209      axios.post('v1/groups/users/requests', data),210    approveGroupUser: data =>211      axios.post('v1/groups/users/requests/apply', data),212    setRoleForUser: data =>213      axios.post('v1/groups/users/role', objectToFormData(data)),214    getBlacklist: data =>215      axios.post('v1/groups/blacklist/all', objectToFormData(data)),216    addUserToBlackList: data =>217      axios.post('v1/groups/blacklist/add', objectToFormData(data)),218    removeUserFromBlackList: data =>219      axios.post('v1/groups/blacklist/delete', objectToFormData(data)),220    addVideo: data =>221      axios.post('v1/groups/videos/add', data),222    addAlbum: data =>223      axios.post('v1/albums/create', data),224  },225  albums: {226    getAlbumPosts: data =>227      axios.post('v1/albums/posts/all', data),228    getAlbum: data =>229      axios.post('v1/albums/get', data),230    addAlbumPost: data =>231      axios.post('v1/albums/posts/add', data),232    deleteAlbumPost: data =>233      axios.post('v1/albums/posts/delete', data),234    createAlbum: data =>235      axios.post('v1/albums/create', data),236    updateAlbum: data =>237      axios.post('v1/albums/edit', data),238    deleteAlbum: data =>239      axios.post('v1/albums/delete', data),240  },241  search: {242    getPosts: data =>243      axios.post('v1/users/posts/search',data),244  },245  chat: {246    getAll: data =>247      axios.post('v1/me/chats/all', data),248    getList: data =>249      axios.post('v1/me/chats/list', data),250    addToArchive: data =>251      axios.post('v1/me/chats/archive', data),252    deleteChat: data =>253      axios.post('v1/me/chats/delete', data),254    getChat: data =>255      axios.post('v1/me/chats/get', data),256    getUnreadMessagesCount: () =>257      axios.get('v1/me/chats/messages/unread'),258    readMessages: data =>259      axios.post('v1/me/chats/messages/read', data),260    create: data =>261      axios.post('v1/me/chats/create', data),262    getArchive: data =>263      axios.post('v1/me/chats/archived/all', data),264    search: data =>265      axios.post('v1/me/chats/search', data)266  },267  messages: {268    getAll: data =>269      axios.post('v1/me/chats/messages/all', data),270    send: data =>271      axios.post('v1/me/chats/messages/send', data),272    distribution: data =>273      axios.post('v1/me/chats/messages/distribution', data),274    getFavourite: data =>275      axios.post('v1/me/chats/messages/favourite/all', data),276    addFavourite: data =>277      axios.post('v1/me/chats/messages/favourite/add', data),278    deleteFavourite: data =>279      axios.post('v1/me/chats/messages/favourite/delete', data),280    delete: data =>281      axios.post('v1/me/chats/messages/delete', data),282    forwardMessage: data =>283      axios.post('v1/me/chats/messages/forward', data),284    forwardPost: data =>285      axios.post('v1/me/chats/messages/forward-post', data)286  },287  banner: {288    getAll: () =>289      axios.get('v1/banners/all'),290    getBanner: data =>291      axios.post('v1/banners/get', data)292  },293  contests: {294    getAll: data =>295      axios.post('v1/contests/all', data)296  }...

Full Screen

Full Screen

axios_vx.x.x.js

Source:axios_vx.x.x.js Github

copy

Full Screen

1// flow-typed signature: e0f675cc56db12f7865d542c523225c52// flow-typed version: <<STUB>>/axios_v1.0.0/flow_v0.63.13/**4 * This is an autogenerated libdef stub for:5 *6 *   'axios'7 *8 * Fill this stub out by replacing all the `any` types.9 *10 * Once filled out, we encourage you to share your work with the11 * community by sending a pull request to:12 * https://github.com/flowtype/flow-typed13 */14declare module 'axios' {15  declare module.exports: any;16}17/**18 * We include stubs for each file inside this npm package in case you need to19 * require those files directly. Feel free to delete any files that aren't20 * needed.21 */22declare module 'axios/dist/axios' {23  declare module.exports: any;24}25declare module 'axios/dist/axios.min' {26  declare module.exports: any;27}28declare module 'axios/lib/adapters/http' {29  declare module.exports: any;30}31declare module 'axios/lib/adapters/xhr' {32  declare module.exports: any;33}34declare module 'axios/lib/axios' {35  declare module.exports: any;36}37declare module 'axios/lib/cancel/Cancel' {38  declare module.exports: any;39}40declare module 'axios/lib/cancel/CancelToken' {41  declare module.exports: any;42}43declare module 'axios/lib/cancel/isCancel' {44  declare module.exports: any;45}46declare module 'axios/lib/core/Axios' {47  declare module.exports: any;48}49declare module 'axios/lib/core/createError' {50  declare module.exports: any;51}52declare module 'axios/lib/core/dispatchRequest' {53  declare module.exports: any;54}55declare module 'axios/lib/core/enhanceError' {56  declare module.exports: any;57}58declare module 'axios/lib/core/InterceptorManager' {59  declare module.exports: any;60}61declare module 'axios/lib/core/settle' {62  declare module.exports: any;63}64declare module 'axios/lib/core/transformData' {65  declare module.exports: any;66}67declare module 'axios/lib/defaults' {68  declare module.exports: any;69}70declare module 'axios/lib/helpers/bind' {71  declare module.exports: any;72}73declare module 'axios/lib/helpers/btoa' {74  declare module.exports: any;75}76declare module 'axios/lib/helpers/buildURL' {77  declare module.exports: any;78}79declare module 'axios/lib/helpers/combineURLs' {80  declare module.exports: any;81}82declare module 'axios/lib/helpers/cookies' {83  declare module.exports: any;84}85declare module 'axios/lib/helpers/deprecatedMethod' {86  declare module.exports: any;87}88declare module 'axios/lib/helpers/isAbsoluteURL' {89  declare module.exports: any;90}91declare module 'axios/lib/helpers/isURLSameOrigin' {92  declare module.exports: any;93}94declare module 'axios/lib/helpers/normalizeHeaderName' {95  declare module.exports: any;96}97declare module 'axios/lib/helpers/parseHeaders' {98  declare module.exports: any;99}100declare module 'axios/lib/helpers/spread' {101  declare module.exports: any;102}103declare module 'axios/lib/utils' {104  declare module.exports: any;105}106// Filename aliases107declare module 'axios/dist/axios.js' {108  declare module.exports: $Exports<'axios/dist/axios'>;109}110declare module 'axios/dist/axios.min.js' {111  declare module.exports: $Exports<'axios/dist/axios.min'>;112}113declare module 'axios/index' {114  declare module.exports: $Exports<'axios'>;115}116declare module 'axios/index.js' {117  declare module.exports: $Exports<'axios'>;118}119declare module 'axios/lib/adapters/http.js' {120  declare module.exports: $Exports<'axios/lib/adapters/http'>;121}122declare module 'axios/lib/adapters/xhr.js' {123  declare module.exports: $Exports<'axios/lib/adapters/xhr'>;124}125declare module 'axios/lib/axios.js' {126  declare module.exports: $Exports<'axios/lib/axios'>;127}128declare module 'axios/lib/cancel/Cancel.js' {129  declare module.exports: $Exports<'axios/lib/cancel/Cancel'>;130}131declare module 'axios/lib/cancel/CancelToken.js' {132  declare module.exports: $Exports<'axios/lib/cancel/CancelToken'>;133}134declare module 'axios/lib/cancel/isCancel.js' {135  declare module.exports: $Exports<'axios/lib/cancel/isCancel'>;136}137declare module 'axios/lib/core/Axios.js' {138  declare module.exports: $Exports<'axios/lib/core/Axios'>;139}140declare module 'axios/lib/core/createError.js' {141  declare module.exports: $Exports<'axios/lib/core/createError'>;142}143declare module 'axios/lib/core/dispatchRequest.js' {144  declare module.exports: $Exports<'axios/lib/core/dispatchRequest'>;145}146declare module 'axios/lib/core/enhanceError.js' {147  declare module.exports: $Exports<'axios/lib/core/enhanceError'>;148}149declare module 'axios/lib/core/InterceptorManager.js' {150  declare module.exports: $Exports<'axios/lib/core/InterceptorManager'>;151}152declare module 'axios/lib/core/settle.js' {153  declare module.exports: $Exports<'axios/lib/core/settle'>;154}155declare module 'axios/lib/core/transformData.js' {156  declare module.exports: $Exports<'axios/lib/core/transformData'>;157}158declare module 'axios/lib/defaults.js' {159  declare module.exports: $Exports<'axios/lib/defaults'>;160}161declare module 'axios/lib/helpers/bind.js' {162  declare module.exports: $Exports<'axios/lib/helpers/bind'>;163}164declare module 'axios/lib/helpers/btoa.js' {165  declare module.exports: $Exports<'axios/lib/helpers/btoa'>;166}167declare module 'axios/lib/helpers/buildURL.js' {168  declare module.exports: $Exports<'axios/lib/helpers/buildURL'>;169}170declare module 'axios/lib/helpers/combineURLs.js' {171  declare module.exports: $Exports<'axios/lib/helpers/combineURLs'>;172}173declare module 'axios/lib/helpers/cookies.js' {174  declare module.exports: $Exports<'axios/lib/helpers/cookies'>;175}176declare module 'axios/lib/helpers/deprecatedMethod.js' {177  declare module.exports: $Exports<'axios/lib/helpers/deprecatedMethod'>;178}179declare module 'axios/lib/helpers/isAbsoluteURL.js' {180  declare module.exports: $Exports<'axios/lib/helpers/isAbsoluteURL'>;181}182declare module 'axios/lib/helpers/isURLSameOrigin.js' {183  declare module.exports: $Exports<'axios/lib/helpers/isURLSameOrigin'>;184}185declare module 'axios/lib/helpers/normalizeHeaderName.js' {186  declare module.exports: $Exports<'axios/lib/helpers/normalizeHeaderName'>;187}188declare module 'axios/lib/helpers/parseHeaders.js' {189  declare module.exports: $Exports<'axios/lib/helpers/parseHeaders'>;190}191declare module 'axios/lib/helpers/spread.js' {192  declare module.exports: $Exports<'axios/lib/helpers/spread'>;193}194declare module 'axios/lib/utils.js' {195  declare module.exports: $Exports<'axios/lib/utils'>;...

Full Screen

Full Screen

test.mjs

Source:test.mjs Github

copy

Full Screen

1import ava from 'ava'2import delay from 'delay'3import LRUCache from 'lru-cache'4import axios from 'axios'5import * as axiosCachingDns from '../index.mjs'6const test = ava.serial7let axiosClient8test.beforeEach(() => {9  axiosCachingDns.config.dnsTtlMs = 100010  axiosCachingDns.config.dnsIdleTtlMs = 500011  axiosCachingDns.config.cacheGraceExpireMultiplier = 212  axiosCachingDns.config.backgroundScanMs = 10013  axiosCachingDns.cacheConfig.maxAge = (axiosCachingDns.config.dnsTtlMs * axiosCachingDns.config.cacheGraceExpireMultiplier)14  axiosCachingDns.config.cache = new LRUCache(axiosCachingDns.cacheConfig)15  axiosClient = axios.create({16    timeout: 5000,17    // maxRedirects: 0,18  })19  axiosCachingDns.registerInterceptor(axiosClient)20  axiosCachingDns.startBackgroundRefresh()21  axiosCachingDns.startPeriodicCachePrune()22})23test.after.always(() => {24  axiosCachingDns.config.cache.reset()25})26test('query google with baseURL and relative url', async (t) => {27  axiosCachingDns.registerInterceptor(axios)28  const { data } = await axios.get('/finance', {29    baseURL: 'http://www.google.com',30    // headers: { Authorization: `Basic ${basicauth}` },31  })32  t.truthy(data)33  t.is(1, axiosCachingDns.getStats().dnsEntries)34  t.is(1, axiosCachingDns.getStats().misses)35})36test('query google caches and after idle delay uncached', async (t) => {37  const resp = await axiosClient.get('http://amazon.com')38  t.truthy(resp.data)39  t.truthy(axiosCachingDns.config.cache.get('amazon.com'))40  await delay(6000)41  t.falsy(axiosCachingDns.config.cache.get('amazon.com'))42  const expectedStats = {43    dnsEntries: 0,44    // refreshed: 4, variable45    hits: 0,46    misses: 2,47    idleExpired: 1,48    errors: 0,49    lastError: 0,50    lastErrorTs: 0,51  }52  const stats = axiosCachingDns.getStats()53  delete stats.refreshed54  t.deepEqual(expectedStats, stats)55})56test('query google caches and refreshes', async (t) => {57  await axiosClient.get('http://amazon.com')58  const { updatedTs } = axiosCachingDns.config.cache.get('amazon.com')59  const timeoutTime = Date.now() + 500060  // eslint-disable-next-line no-constant-condition61  while (true) {62    const dnsEntry = axiosCachingDns.config.cache.get('amazon.com')63    if (!dnsEntry) t.fail('dnsEntry missing or expired')64    // console.log(dnsEntry)65    if (updatedTs !== dnsEntry.updatedTs) break66    if (Date.now() > timeoutTime) t.fail()67    // eslint-disable-next-line no-await-in-loop68    await delay(10)69  }70  const expectedStats = {71    dnsEntries: 1,72    // refreshed: 5, variable73    hits: 0,74    misses: 3,75    idleExpired: 1,76    errors: 0,77    lastError: 0,78    lastErrorTs: 0,79  }80  const stats = axiosCachingDns.getStats()81  delete stats.refreshed82  t.deepEqual(expectedStats, stats)83})84test('query two services, caches and after one idle delay uncached', async (t) => {85  await axiosClient.get('http://amazon.com')86  await axiosClient.get('http://microsoft.com')87  const { lastUsedTs } = axiosCachingDns.config.cache.get('microsoft.com')88  t.is(1, axiosCachingDns.config.cache.get('microsoft.com').nextIdx)89  await axiosClient.get('http://microsoft.com')90  t.is(2, axiosCachingDns.config.cache.get('microsoft.com').nextIdx)91  t.truthy(lastUsedTs < axiosCachingDns.config.cache.get('microsoft.com').lastUsedTs)92  t.is(2, axiosCachingDns.config.cache.length)93  await axiosClient.get('http://microsoft.com')94  t.is(3, axiosCachingDns.config.cache.get('microsoft.com').nextIdx)95  t.falsy(lastUsedTs === axiosCachingDns.config.cache.get('microsoft.com').lastUsedTs)96  t.is(2, axiosCachingDns.config.cache.length)97  await delay(4000)98  t.is(1, axiosCachingDns.config.cache.length)99  await delay(2000)100  t.is(0, axiosCachingDns.config.cache.length)101  const expectedStats = {102    dnsEntries: 0,103    // refreshed: 17, variable104    hits: 2,105    misses: 5,106    idleExpired: 3,107    errors: 0,108    lastError: 0,109    lastErrorTs: 0,110  }111  const stats = axiosCachingDns.getStats()112  delete stats.refreshed113  t.deepEqual(expectedStats, stats)114})115test('validate axios config not altered', async (t) => {116  const baseURL = 'http://microsoft.com'117  const axiosConfig = { baseURL }118  const custAxiosClient = axios.create(axiosConfig)119  axiosCachingDns.registerInterceptor(custAxiosClient)120  await custAxiosClient.get('/')121  t.is(baseURL, axiosConfig.baseURL)122  await custAxiosClient.get('/')123  t.is(baseURL, axiosConfig.baseURL)124})125test('validate axios get config not altered', async (t) => {126  const url = 'http://microsoft.com'127  const custAxiosClient = axios.create()128  const reqConfig = {129    method: 'get',130    url,131  }132  axiosCachingDns.registerInterceptor(custAxiosClient)133  await custAxiosClient.get(url, reqConfig)134  t.is(url, reqConfig.url)135  await custAxiosClient.get(url, reqConfig)136  t.is(url, reqConfig.url)137})138test('validate axios request config not altered', async (t) => {139  const url = 'http://microsoft.com'140  const custAxiosClient = axios.create()141  const reqConfig = {142    method: 'get',143    url,144  }145  axiosCachingDns.registerInterceptor(custAxiosClient)146  await custAxiosClient.request(reqConfig)147  t.is(url, reqConfig.url)148  await custAxiosClient.request(reqConfig)149  t.is(url, reqConfig.url)...

Full Screen

Full Screen

test.js

Source:test.js Github

copy

Full Screen

1import ava from 'ava'2import delay from 'delay'3import LRUCache from 'lru-cache'4import axios from 'axios'5import * as axiosCachingDns from '../index.js'6const test = ava.serial7let axiosClient8test.beforeEach(() => {9  axiosCachingDns.config.dnsTtlMs = 100010  axiosCachingDns.config.dnsIdleTtlMs = 500011  axiosCachingDns.config.cacheGraceExpireMultiplier = 212  axiosCachingDns.config.backgroundScanMs = 10013  axiosCachingDns.cacheConfig.ttl = (axiosCachingDns.config.dnsTtlMs * axiosCachingDns.config.cacheGraceExpireMultiplier)14  axiosCachingDns.config.cache = new LRUCache(axiosCachingDns.cacheConfig)15  axiosClient = axios.create({16    timeout: 5000,17    // maxRedirects: 0,18  })19  axiosCachingDns.registerInterceptor(axiosClient)20  axiosCachingDns.startBackgroundRefresh()21  axiosCachingDns.startPeriodicCachePrune()22})23test.after.always(() => {24  axiosCachingDns.config.cache.clear()25})26test('query google with baseURL and relative url', async (t) => {27  axiosCachingDns.registerInterceptor(axios)28  const { data } = await axios.get('/finance', {29    baseURL: 'http://www.google.com',30    // headers: { Authorization: `Basic ${basicauth}` },31  })32  t.truthy(data)33  t.is(1, axiosCachingDns.getStats().dnsEntries)34  t.is(1, axiosCachingDns.getStats().misses)35})36test('query google caches and after idle delay uncached', async (t) => {37  const resp = await axiosClient.get('http://amazon.com')38  t.truthy(resp.data)39  t.truthy(axiosCachingDns.config.cache.get('amazon.com'))40  await delay(6000)41  t.falsy(axiosCachingDns.config.cache.get('amazon.com'))42  const expectedStats = {43    dnsEntries: 0,44    // refreshed: 4, variable45    hits: 0,46    misses: 2,47    idleExpired: 1,48    errors: 0,49    lastError: 0,50    lastErrorTs: 0,51  }52  const stats = axiosCachingDns.getStats()53  delete stats.refreshed54  t.deepEqual(expectedStats, stats)55})56test('query google caches and refreshes', async (t) => {57  await axiosClient.get('http://amazon.com')58  const { updatedTs } = axiosCachingDns.config.cache.get('amazon.com')59  const timeoutTime = Date.now() + 500060  // eslint-disable-next-line no-constant-condition61  while (true) {62    const dnsEntry = axiosCachingDns.config.cache.get('amazon.com')63    if (!dnsEntry) t.fail('dnsEntry missing or expired')64    // console.log(dnsEntry)65    if (updatedTs !== dnsEntry.updatedTs) break66    if (Date.now() > timeoutTime) t.fail()67    // eslint-disable-next-line no-await-in-loop68    await delay(10)69  }70  const expectedStats = {71    dnsEntries: 1,72    // refreshed: 5, variable73    hits: 0,74    misses: 3,75    idleExpired: 1,76    errors: 0,77    lastError: 0,78    lastErrorTs: 0,79  }80  const stats = axiosCachingDns.getStats()81  delete stats.refreshed82  t.deepEqual(expectedStats, stats)83})84test('query two services, caches and after one idle delay uncached', async (t) => {85  await axiosClient.get('http://amazon.com')86  await axiosClient.get('http://microsoft.com')87  const { lastUsedTs } = axiosCachingDns.config.cache.get('microsoft.com')88  t.is(1, axiosCachingDns.config.cache.get('microsoft.com').nextIdx)89  await axiosClient.get('http://microsoft.com')90  t.is(2, axiosCachingDns.config.cache.get('microsoft.com').nextIdx)91  t.truthy(lastUsedTs < axiosCachingDns.config.cache.get('microsoft.com').lastUsedTs)92  t.is(2, axiosCachingDns.config.cache.size)93  await axiosClient.get('http://microsoft.com')94  t.is(3, axiosCachingDns.config.cache.get('microsoft.com').nextIdx)95  t.falsy(lastUsedTs === axiosCachingDns.config.cache.get('microsoft.com').lastUsedTs)96  t.is(2, axiosCachingDns.config.cache.size)97  await delay(4000)98  t.is(1, axiosCachingDns.config.cache.size)99  await delay(2000)100  t.is(0, axiosCachingDns.config.cache.size)101  const expectedStats = {102    dnsEntries: 0,103    // refreshed: 17, variable104    hits: 2,105    misses: 5,106    idleExpired: 3,107    errors: 0,108    lastError: 0,109    lastErrorTs: 0,110  }111  const stats = axiosCachingDns.getStats()112  delete stats.refreshed113  t.deepEqual(expectedStats, stats)114})115test('validate axios config not altered', async (t) => {116  const baseURL = 'http://microsoft.com'117  const axiosConfig = { baseURL }118  const custAxiosClient = axios.create(axiosConfig)119  axiosCachingDns.registerInterceptor(custAxiosClient)120  await custAxiosClient.get('/')121  t.is(baseURL, axiosConfig.baseURL)122  await custAxiosClient.get('/')123  t.is(baseURL, axiosConfig.baseURL)124})125test('validate axios get config not altered', async (t) => {126  const url = 'http://microsoft.com'127  const custAxiosClient = axios.create()128  const reqConfig = {129    method: 'get',130    url,131  }132  axiosCachingDns.registerInterceptor(custAxiosClient)133  await custAxiosClient.get(url, reqConfig)134  t.is(url, reqConfig.url)135  await custAxiosClient.get(url, reqConfig)136  t.is(url, reqConfig.url)137})138test('validate axios request config not altered', async (t) => {139  const url = 'http://microsoft.com'140  const custAxiosClient = axios.create()141  const reqConfig = {142    method: 'get',143    url,144  }145  axiosCachingDns.registerInterceptor(custAxiosClient)146  await custAxiosClient.request(reqConfig)147  t.is(url, reqConfig.url)148  await custAxiosClient.request(reqConfig)149  t.is(url, reqConfig.url)...

Full Screen

Full Screen

systemManage.js

Source:systemManage.js Github

copy

Full Screen

1import { axios } from '@/utils/axios'2//下拉框值(码表)3export function lableData( params ){4    return axios.get('codes/selectList',{params})5}6// 级联7export function cascadeLabelData(params ){8    return axios.get('codes/categoryCode/parentCodeKey',{params})9}10//系统用户11export function getUserList(params){12    return axios.post('adminUser/page',params)13}14export function agentSave(params){15    return axios.post(`adminUser/${params.id ? 'edit' : 'save'}`,params)16}17export function agentDetail(id){18    return axios.get('adminUser/select/detail/'+id)19}20export function agentDelete(params){21    return axios.post('adminUser/delete',params)22}23export function agentEnable(id,params){24    return axios.get('adminUser/enable/'+id,{params})25}26export function agentPassword(params){//重置密码27    return axios.post('adminUser/reset/password',params)28}29export function companySearch (companyName) {//企业模糊搜索下拉框30    return axios.get('company/vague/list/'+companyName)31}32export function getAllUserData() {//获取所有的用户33    return axios.get('adminUser/list');34}35//菜单管理36export function menusList() {//获取菜单列表37    return axios.get('resource/treePage')38}39export function addMenus(params) {//添加菜单节点40    return axios.post('resource/save',params)41}42export function editMenus(params) {//编辑菜单节点43    return axios.post('resource/edit',params)44}45export function deleteMenus(params) {//删除菜单节点46    return axios.post('resource/delete',params)47}48//角色管理49export function getRoleListData() {//获取角色列表50    return axios.post('role/page')51}52export function addRole(params) {//添加角色节点53    return axios.post('role/save',params)54}55export function editRole(params) {//编辑角色节点56    return axios.post('role/edit',params)57}58export function deleteRole(params) {//删除角色节点59    return axios.post('role/delete',params)60}61export function copyRole(params) {//复制角色节点62    return axios.post('role/copy',params)63}64export function enabledRole(id,params) {//禁用启用角色65    return axios.get(`role/enable/${id}`,{params})66}67export function getRoleResource(id) {//获取角色已配置的资源数据68    return axios.get(`/role/select/${id}/resource`)69}70export function getRoleUser(id) {//获取角色已配置的用户数据71    return axios.get(`/role/select/${id}/user`)72}73export function saveRoleResource(params) {//保存角色配置的资源数据74    return axios.post('role/dispose/resource',params)75}76export function saveRoleUser(params) {//保存角色配置的用户数据77    return axios.post('role/dispose/user',params)78}79//码表类别管理80export function getCategoryPage(params) {//获取码表类别列表数据81    return axios.post('category/page',params)82}83export function getCategoryList() {//查询所有的类别84    return axios.get('category/list')85}86export function addCategory(params) {//新建码表类别87    return axios.post('category/save',params)88}89export function editCategory(params) {//编辑码表类别90    return axios.post('category/edit',params)91}92export function deleteCategory(id) {//删除码表类别93    return axios.post(`category/deleted/${id}`)94}95export function getCateValuePage(params) {//获取码表值列表数据96    return axios.post('codes/page',params)97}98export function addCodeValue(params) {//新建码表值99    return axios.post('codes/save',params)100}101export function editCodeValue(params) {//编辑码表值102    return axios.post('codes/edit',params)103}104export function delCodeValue(params) {//删除码表值105    return axios.post('codes/delete/batch',params)106}107export function queryParentList(id) {//多级联动码表值加载上级节点的下拉值108    return axios.get(`codes/save/query/${id}`)109}110export function loadNextData(categoryCode,parentCodeKey) {//多级联动加载下级数据111    return axios.get(`codes/categoryCode/parentCodeKey?categoryCode=${categoryCode}&parentCodeKey=${parentCodeKey}`)112}113//首页顶部数据统计接口114export function getTopTotalData() {115    return axios.get('homePage/count')116}117export function getEnterpriseList(params){118    return axios.post('company/page',params)...

Full Screen

Full Screen

axios.js

Source:axios.js Github

copy

Full Screen

1import Axios from 'axios'2import defu from 'defu'3// Axios.prototype cannot be modified4const axiosExtra = {5  setBaseURL (baseURL) {6    this.defaults.baseURL = baseURL7  },8  setHeader (name, value, scopes = 'common') {9    for (let scope of Array.isArray(scopes) ? scopes : [ scopes ]) {10      if (!value) {11        delete this.defaults.headers[scope][name];12        return13      }14      this.defaults.headers[scope][name] = value15    }16  },17  setToken (token, type, scopes = 'common') {18    const value = !token ? null : (type ? type + ' ' : '') + token19    this.setHeader('Authorization', value, scopes)20  },21  onRequest(fn) {22    this.interceptors.request.use(config => fn(config) || config)23  },24  onResponse(fn) {25    this.interceptors.response.use(response => fn(response) || response)26  },27  onRequestError(fn) {28    this.interceptors.request.use(undefined, error => fn(error) || Promise.reject(error))29  },30  onResponseError(fn) {31    this.interceptors.response.use(undefined, error => fn(error) || Promise.reject(error))32  },33  onError(fn) {34    this.onRequestError(fn)35    this.onResponseError(fn)36  },37  create(options) {38    return createAxiosInstance(defu(options, this.defaults))39  }40}41// Request helpers ($get, $post, ...)42for (let method of ['request', 'delete', 'get', 'head', 'options', 'post', 'put', 'patch']) {43  axiosExtra['$' + method] = function () { return this[method].apply(this, arguments).then(res => res && res.data) }44}45const extendAxiosInstance = axios => {46  for (let key in axiosExtra) {47    axios[key] = axiosExtra[key].bind(axios)48  }49}50const createAxiosInstance = axiosOptions => {51  // Create new axios instance52  const axios = Axios.create(axiosOptions)53  axios.CancelToken = Axios.CancelToken54  axios.isCancel = Axios.isCancel55  // Extend axios proto56  extendAxiosInstance(axios)57  // Setup interceptors58  setupProgress(axios)59  return axios60}61const setupProgress = (axios) => {62  if (process.server) {63    return64  }65  // A noop loading inteterface for when $nuxt is not yet ready66  const noopLoading = {67    finish: () => { },68    start: () => { },69    fail: () => { },70    set: () => { }71  }72  const $loading = () => (window.$nuxt && window.$nuxt.$loading && window.$nuxt.$loading.set) ? window.$nuxt.$loading : noopLoading73  let currentRequests = 074  axios.onRequest(config => {75    if (config && config.progress === false) {76      return77    }78    currentRequests++79  })80  axios.onResponse(response => {81    if (response && response.config && response.config.progress === false) {82      return83    }84    currentRequests--85    if (currentRequests <= 0) {86      currentRequests = 087      $loading().finish()88    }89  })90  axios.onError(error => {91    if (error && error.config && error.config.progress === false) {92      return93    }94    currentRequests--95    if (Axios.isCancel(error)) {96      return97    }98    $loading().fail()99    $loading().finish()100  })101  const onProgress = e => {102    if (!currentRequests) {103      return104    }105    const progress = ((e.loaded * 100) / (e.total * currentRequests))106    $loading().set(Math.min(100, progress))107  }108  axios.defaults.onUploadProgress = onProgress109  axios.defaults.onDownloadProgress = onProgress110}111export default (ctx, inject) => {112  // baseURL113  const baseURL = process.browser114      ? '/'115      : (process.env._AXIOS_BASE_URL_ || 'http://localhost:3000/')116  // Create fresh objects for all default header scopes117  // Axios creates only one which is shared across SSR requests!118  // https://github.com/mzabriskie/axios/blob/master/lib/defaults.js119  const headers = {120    "common": {121        "Accept": "application/json, text/plain, */*"122    },123    "delete": {},124    "get": {},125    "head": {},126    "post": {},127    "put": {},128    "patch": {}129}130  const axiosOptions = {131    baseURL,132    headers133  }134  // Proxy SSR request headers headers135  axiosOptions.headers.common = (ctx.req && ctx.req.headers) ? Object.assign({}, ctx.req.headers) : {}136  delete axiosOptions.headers.common['accept']137  delete axiosOptions.headers.common['host']138  delete axiosOptions.headers.common['cf-ray']139  delete axiosOptions.headers.common['cf-connecting-ip']140  delete axiosOptions.headers.common['content-length']141  delete axiosOptions.headers.common['content-md5']142  delete axiosOptions.headers.common['content-type']143  if (process.server) {144    // Don't accept brotli encoding because Node can't parse it145    axiosOptions.headers.common['accept-encoding'] = 'gzip, deflate'146  }147  const axios = createAxiosInstance(axiosOptions)148  // Inject axios to the context as $axios149  ctx.$axios = axios150  inject('axios', axios)...

Full Screen

Full Screen

index.js

Source:index.js Github

copy

Full Screen

1import axios from 'axios'2axios.defaults.baseURL = 'http://127.0.0.1:3000/main/'3// 首页开始4// 对返回的数据进行数据拦截5axios.interceptors.response.use(function (response) {6  // 返回response.data7  return response.data8}, function (error) {9  return Promise.reject(error)10})11// 今日推荐分类接口12export function getClassify () {13  return axios.get('classify')14}15// 品牌特卖接口16export function getSaleHot () {17  return axios.get('saleHot')18}19// 唯品快抢接口20export function getSaleFast () {21  return axios.get('saleFast')22}23// 首页今日特卖接口24export function getTodaySale () {25  return axios.get('todaySale')26}27// 首页接口结束28// 母婴页面接口开始29// 母婴页面轮播图30export function getFransnanaBanner () {31  return axios.get('slider')32}33// 母婴页面分类34export function getWbClassify () {35  return axios.get('wbClassify')36}37// 母婴页面今日特卖38export function getWbSaleHot () {39  return axios.get('wbSaleHot')40}41// 母婴页面唯品快抢版块42export function getWbSaleFast () {43  return axios.get('wbSaleFast')44}45// 获取主分类页面的左边分类栏46export function getWbLeftNav () {47  return axios.get('wbClassifyLeft')48}49// 分类推荐50export function getWbRecommend () {51  return axios.get('recommend')52}53export function getRegister () {54  return axios.get('register')55}56// 田定茂57// 轮播接口58export function getCarousel () {59  return axios.get('tcarousel')60}61// 手机接口62export function getCallphone () {63  return axios.get('tcellphone')64}65// 广告66export function getFenlei () {67  return axios.get('tfenlei')68}69// 快抢70export function getTkuai () {71  return axios.get('tkuai')72}73// 小米74export function getTmi1 () {75  return axios.get('tmi1')76}77export function getTmi2 () {78  return axios.get('tmi2')79}80// 展示81export function getShow () {82  return axios.get('show')83}84// lfz85export function getBanner () {86  return axios.get('banner')87}88export function getHomeCate () {89  return axios.get('category')90}91export function getkuaiqiang () {92  return axios.get('weipinkuaiqiang')93}94// 地区馆接口95export function getBrandList () {96  return axios.get('brandList')97}98// 猜你喜欢接口99export function getCainixihuan () {100  return axios.get('cainixihuan')101}102// 更多推荐接口103export function getgengduotuijian () {104  return axios.get('gengduotuijian')105}106// 页头图片接口107export function getYetou () {108  return axios.get('yetou')109}110// 聂苗苗 国际111// 轮播图接口112export function getBanner1 () {113  return axios.get('banner1')114}115// 展示图接口116export function getComptPlay () {117  return axios.get('playList')118}119// 左滑动接口120export function getLeftslide () {121  return axios.get('leftslide')122}123// 快抢接口124export function getGrabList () {125  return axios.get('grabList')126}127// 猜你喜欢接口128export function getGuessLike () {129  return axios.get('guessLike')130}131// 唯品国际接口132export function getOnlyproduct () {133  return axios.get('onlyproduct')134}135// 豆欣欣 生活接口136export function getBanner2 () {137  return axios.get('banner2')138}139//第二部分140export function getLiveCate () {141  return axios.get('category2')142}143// 第三部分144export function getLiveThree () {145  return axios.get('three')146}147// 第四部分148export function getLiveFour () {149  return axios.get('four')150}151// 第五部分152export function getLiveFive () {153  return axios.get('five')154}155// 第六部分156export function getLiveSix () {157  return axios.get('six')...

Full Screen

Full Screen

actions.js

Source:actions.js Github

copy

Full Screen

1const actions = {2  AXIOS_ADD_BEGIN: 'AXIOS_ADD_BEGIN',3  AXIOS_ADD_SUCCESS: 'AXIOS_ADD_SUCCESS',4  AXIOS_ADD_ERR: 'AXIOS_ADD_ERR',5  AXIOS_READ_BEGIN: 'AXIOS_READ_BEGIN',6  AXIOS_READ_SUCCESS: 'AXIOS_READ_SUCCESS',7  AXIOS_READ_ERR: 'AXIOS_READ_ERR',8  AXIOS_UPDATE_BEGIN: 'AXIOS_UPDATE_BEGIN',9  AXIOS_UPDATE_SUCCESS: 'AXIOS_UPDATE_SUCCESS',10  AXIOS_UPDATE_ERR: 'AXIOS_UPDATE_ERR',11  AXIOS_DELETE_BEGIN: 'AXIOS_DELETE_BEGIN',12  AXIOS_DELETE_SUCCESS: 'AXIOS_DELETE_SUCCESS',13  AXIOS_DELETE_ERR: 'AXIOS_DELETE_ERR',14  AXIOS_SINGLE_DATA_BEGIN: 'AXIOS_SINGLE_DATA_BEGIN',15  AXIOS_SINGLE_DATA_SUCCESS: 'AXIOS_SINGLE_DATA_SUCCESS',16  AXIOS_SINGLE_DATA_ERR: 'AXIOS_SINGLE_DATA_ERR',17  AXIOS_UPLOAD_BEGIN: 'AXIOS_UPLOAD_BEGIN',18  AXIOS_UPLOAD_SUCCESS: 'AXIOS_UPLOAD_SUCCESS',19  AXIOS_UPLOAD_ERR: 'AXIOS_UPLOAD_ERR',20  axiosUploadBegin: () => {21    return {22      type: actions.AXIOS_UPLOAD_BEGIN,23    };24  },25  axiosUploadSuccess: data => {26    return {27      type: actions.AXIOS_UPLOAD_SUCCESS,28      data,29    };30  },31  axiosUploadErr: err => {32    return {33      type: actions.AXIOS_UPLOAD_ERR,34      err,35    };36  },37  axiosAddBegin: () => {38    return {39      type: actions.AXIOS_ADD_BEGIN,40    };41  },42  axiosAddSuccess: data => {43    return {44      type: actions.AXIOS_ADD_SUCCESS,45      data,46    };47  },48  axiosAddErr: err => {49    return {50      type: actions.AXIOS_ADD_ERR,51      err,52    };53  },54  axiosReadBegin: () => {55    return {56      type: actions.AXIOS_READ_BEGIN,57    };58  },59  axiosReadSuccess: data => {60    return {61      type: actions.AXIOS_READ_SUCCESS,62      data,63    };64  },65  axiosReadErr: err => {66    return {67      type: actions.AXIOS_READ_ERR,68      err,69    };70  },71  axiosUpdateBegin: () => {72    return {73      type: actions.AXIOS_UPDATE_BEGIN,74    };75  },76  axiosUpdateSuccess: data => {77    return {78      type: actions.AXIOS_UPDATE_SUCCESS,79      data,80    };81  },82  axiosUpdateErr: err => {83    return {84      type: actions.AXIOS_UPDATE_ERR,85      err,86    };87  },88  axiosDeleteBegin: () => {89    return {90      type: actions.AXIOS_DELETE_BEGIN,91    };92  },93  axiosDeleteSuccess: data => {94    return {95      type: actions.AXIOS_DELETE_SUCCESS,96      data,97    };98  },99  axiosDeleteErr: err => {100    return {101      type: actions.AXIOS_DELETE_ERR,102      err,103    };104  },105  axiosSingleDataBegin: () => {106    return {107      type: actions.AXIOS_SINGLE_DATA_BEGIN,108    };109  },110  axiosSingleDataSuccess: data => {111    return {112      type: actions.AXIOS_SINGLE_DATA_SUCCESS,113      data,114    };115  },116  axiosSingleDataErr: err => {117    return {118      type: actions.AXIOS_SINGLE_DATA_ERR,119      err,120    };121  },122};...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1var axios = require('axios');2var data = JSON.stringify({"desiredCapabilities":{"browserName":"chrome"}});3var config = {4  headers: { 5  },6};7axios(config)8.then(function (response) {9  console.log(JSON.stringify(response.data));10})11.catch(function (error) {12  console.log(error);13});14var axios = require('axios');15var data = JSON.stringify({"desiredCapabilities":{"browserName":"chrome"}});16var config = {17  headers: { 18  },19};20axios(config)21.then(function (response) {22  console.log(JSON.stringify(response.data));23})24.catch(function (error) {25  console.log(error);26});27var axios = require('axios');28var data = JSON.stringify({"desiredCapabilities":{"browserName":"chrome"}});29var config = {30  headers: { 31  },32};33axios(config)34.then(function (response) {35  console.log(JSON.stringify(response.data));36})37.catch(function (error) {38  console.log(error);39});40var axios = require('axios');41var data = JSON.stringify({"desiredCapabilities":{"browserName":"chrome"}});42var config = {43  headers: { 44  },45};46axios(config)47.then(function (response) {48  console.log(JSON.stringify(response.data));49})50.catch(function (error) {51  console.log(error);52});53var axios = require('axios');54var data = JSON.stringify({"desiredCapabilities":{"browserName":"chrome"}});55var config = {

Full Screen

Using AI Code Generation

copy

Full Screen

1const axios = require('axios');2const axiosInstance = axios.create({3  headers: {4  }5});6const data = {7  "desiredCapabilities": {8  }9};10(async () => {11  try {12    const response = await axiosInstance.post('/session', data);13    console.log(response);14  } catch (error) {15    console.log(error);16  }17})();

Full Screen

Using AI Code Generation

copy

Full Screen

1var axios = require('axios');2var webdriver = require('selenium-webdriver');3var By = webdriver.By;4var until = webdriver.until;5var driver = new webdriver.Builder()6    .forBrowser('chrome')7    .build();8driver.getSession().then(function(session){9    var id = session.id_;10    console.log(id);11    axios({12        headers: {13        }14    })15    .then(function (response) {16        console.log(response.data);17        console.log(response.data.value.deviceName);18    })19    .catch(function (error) {20        console.log(error);21    });22});23driver.findElement(By.name('q')).sendKeys('webdriver');24driver.findElement(By.name('btnG')).click();25driver.wait(until.titleIs('webdriver - Google Search'), 1000);26driver.quit();27{28  "value": {29    "warnings": {},30    "desired": {31    },32  },

Full Screen

Using AI Code Generation

copy

Full Screen

1import axios from 'axios';2import { config } from './config';3import { getDriver } from './driver';4const driver = getDriver();5describe('Test', () => {6  it('should test', async () => {7    const { data } = await axios.post(`${config.appiumUrl}/session/${driver.sessionId}/element`, {8    });9    console.log(data);10  });11});12import { remote } from 'webdriverio';13export const getDriver = () => {14  return remote({15    capabilities: {16    },17  });18};19export const config = {20};21{22  "scripts": {23  },24  "dependencies": {25  },26  "devDependencies": {27  }28}

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Appium Base Driver automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful